Criando um arquivo de formato

Na importação em massa em uma tabela do SQL Server ou exporta em massa dados de uma tabela, você pode usar um arquivo de formato para armazenar informações de formato para cada campo em um arquivo de dados relativo àquela tabela. Um arquivo de formato fornece um sistema flexível para gravar arquivos de dados que exigem pouca ou nenhuma edição para estar em conformidade com outros formatos de dados ou para ler arquivos de dados de outros programas de software.

O SQL Server 2005 e versões posteriores oferecem suporte a dois tipos de arquivo de formato: formato não-XML e formato XML. O formato não-XML é o formato original com suporte em versões anteriores do SQL Server.

Geralmente, arquivos de formato XML e não-XML são intercambiáveis. Entretanto, recomendamos que você use a sintaxe XML para novos arquivos de formato porque eles apresentam várias vantagens sobre os arquivos de formato não-XML. Para obter mais informações, consulte Introdução aos arquivos de formato.

ObservaçãoObservação

A versão do utilitário bcp (Bcp.exe) usada para ler um arquivo de formato deve ser igual ou posterior à versão usada para criar o arquivo de formato. Por exemplo, o SQL Server 2008bcp pode ler uma versão de arquivo de formato 9.0, gerado pelo SQL Server 2005bcp, mas o SQL Server 2005bcp não pode ler um arquivo de formato versão 10.0, gerado pelo SQL Server 2008bcp.

Este tópico descreve como usar o utilitário bcp para criar um arquivo de formato para uma tabela específica. O arquivo de formato se baseia na opção do tipo de dados especificada (-n, -c, -w ou -N) e nos delimitadores de exibição ou tabela.

Criando um Arquivo de Formato Não-XML

Para usar um comando bcp para criar um arquivo de formato, especifique o argumento format e use nul em vez de um caminho de arquivo de dados. A opção format também requer a opção -f, como:

bcptable_or_viewformat nul -fformat_file_name

ObservaçãoObservação

Para diferenciar um arquivo de formato não-XML recomendamos que você use .fmt como a extensão de nome de arquivo, por exemplo, MyTable.fmt.

Para obter informações sobre a estrutura e os campos de arquivo de formato não-XML, consulte Compreendendo arquivos de formato não-XML.

Exemplos

Esta seção contém os seguintes exemplos que mostram como usar comandos bcp para criar um arquivo de formato não-XML:

  • A. Criar um arquivo de formato não-XML para dados nativos

  • B. Criar um arquivo de formato não-XML para dados de caracteres

  • C. Criar um arquivo de formato não-XML para dados nativos Unicode

  • D. Criar um arquivo de formato não-XML para dados de caracteres Unicode

Os exemplos usam a tabela HumanResources.Department no banco de dados de exemplo AdventureWorks. A tabela HumanResources.Department contém quatro colunas: DepartmentID, Name, GroupName e ModifiedDate. Para obter a definição dessa tabela, consulte Tabela Department (AdventureWorks).

ObservaçãoObservação

A Adventure Works Cycles é uma empresa de fabricação fictícia utilizada para demonstrar conceitos e cenários de banco de dados.

A. Criando um arquivo de formato não-XML para dados nativos

O exemplo a seguir cria um arquivo de formato XML, Department-n.xml, para a tabela AdventureWorksHumanResources.Department. O arquivo de formato usa tipos de dados nativos. O conteúdo do arquivo de formato gerado é apresentado após o comando.

O comando bcp contém os qualificadores a seguir.

Qualificadores

Descrição

formatnul- fformat_file

Especifica o arquivo de formato não-XML.

-n

Especifica tipos de dados nativos.

-T

Especifica que o utilitário bcp faça a conexão com o SQL Server de forma confiável usando segurança integrada. Se -T não for especificado, especifique -U e -P para ter êxito no logon.

No prompt de comando do Windows, digite o seguinte comando bcp:

bcp AdventureWorks.HumanResources.Department format nul -T -n -f Department-n.fmt

O arquivo de formato gerado, Department-n.fmt, contém as seguintes informações:

9.0
4
1       SQLSMALLINT   0       2       ""   1     DepartmentID                 ""
2       SQLNCHAR      2       100     ""   2     Name                         SQL_Latin1_General_CP1_CI_AS
3       SQLNCHAR      2       100     ""   3     GroupName                    SQL_Latin1_General_CP1_CI_AS
4       SQLDATETIME   0       8       ""   4     ModifiedDate                 ""

Para obter mais informações, consulte Compreendendo arquivos de formato não-XML.

B. Criando um arquivo de formato não-XML para dados de caracteres

O exemplo a seguir cria um arquivo de formato XML, Department.fmt, para a tabela AdventureWorksHumanResources.Department. O arquivo de formato usa formatos de dados de caracteres e um terminador de campo não-padrão (,). O conteúdo do arquivo de formato gerado é apresentado após o comando.

O comando bcp contém os qualificadores a seguir.

Qualificadores

Descrição

formatnul- fformat_file

Especifica um arquivo de formato não-XML.

-c

Especifica dados de caracteres.

-T

Especifica que o utilitário bcp faça a conexão com o SQL Server de forma confiável usando segurança integrada. Se -T não for especificado, especifique -U e -P para ter êxito no logon.

No prompt de comando do Windows, digite o seguinte comando bcp:

bcp AdventureWorks.HumanResources.Department format nul -c -f Department-c.fmt -T

O arquivo de formato gerado, Department-c.fmt, contém as seguintes informações:

9.0
4
1       SQLCHAR       0       7       "\t"     1     DepartmentID                 ""
2       SQLCHAR       0       100     "\t"     2     Name                         SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     "\t"     3     GroupName                    SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       24      "\r\n"   4     ModifiedDate                 ""

Para obter mais informações, consulte Compreendendo arquivos de formato não-XML.

C. Criando um arquivo de formato não-XML para dados nativos Unicode

Para criar um arquivo de formato não-XML para dados nativos Unicode para a tabela HumanResources.Department, use o seguinte comando:

bcp AdventureWorks.HumanResources.Department format nul -T -N -f Department-n.fmt

Para obter mais informações sobre como usar dados nativos Unicode, consulte Usando o formato nativo Unicode para importar ou exportar dados.

D. Criando um arquivo de formato não-XML para dados de caracteres Unicode

Para criar um arquivo de formato não-XML para dados de caracteres Unicode para a tabela HumanResources.Department que usa terminadores padrão, utilize o seguinte comando:

bcp AdventureWorks.HumanResources.Department format nul -T -w -f Department-w.fmt

Para obter mais informações sobre como usar dados de caracteres Unicode, consulte Uso do formato de caractere Unicode para importar ou exportar dados.

Criando um arquivo de formato XML

Para usar um comando bcp para criar um arquivo de formato, especifique o argumento format e use nul em vez de um caminho de arquivo de dados. A opção format sempre requer a opção -f e para criar um arquivo de formato XML você deve especificar também a opção -x como:

bcptable_or_viewformat nul-fformat_file_name-x

ObservaçãoObservação

Para diferenciar um arquivo de formato XML, recomendamos que você use .xml como a extensão de nome de arquivo, por exemplo, MyTable.xml.

Para obter informações sobre a estrutura e os campos de arquivos de formato XML, consulte Compreendendo arquivos no formato XML. Para obter informações sobre sintaxe, consulte Sintaxe de esquema para arquivos de formato XML. Para obter exemplos, consulte Arquivos de formato XML de exemplo.

Exemplos

Esta seção contém os seguintes exemplos que mostram como usar comandos bcp para criar um arquivo de formato XML:

  • A. Criar um arquivo de formato XML para dados de caracteres

  • B. Criar um arquivo de formato XML para dados nativos

Os exemplos usam a tabela HumanResources.Department no banco de dados de exemplo AdventureWorks. A tabela HumanResources.Department contém quatro colunas: DepartmentID, Name, GroupName e ModifiedDate. Para obter a definição dessa tabela, consulte Tabela Department (AdventureWorks).

ObservaçãoObservação

A Adventure Works Cycles é uma empresa de fabricação fictícia utilizada para demonstrar conceitos e cenários de banco de dados.

A. Criando um arquivo de formato XML para dados de caracteres

O exemplo a seguir cria um arquivo de formato XML, Department.xml, para a tabela AdventureWorksHumanResources.Department. O arquivo de formato usa formatos de dados de caracteres e um terminador de campo não-padrão (,). O conteúdo do arquivo de formato gerado é apresentado após o comando.

O comando bcp contém os qualificadores a seguir.

Qualificadores

Descrição

formatnul-fformat_file-x

Especifica o arquivo de formato XML.

-c

Especifica dados de caracteres.

-t,

Especifica uma vírgula (,) como terminador de campo.

ObservaçãoObservação
Se o arquivo de dados usar o terminador de campo padrão (\t), a opção -t será desnecessária.

-T

Especifica que o utilitário bcp faça a conexão com o SQL Server de forma confiável usando segurança integrada. Se -T não for especificado, especifique -U e -P para ter êxito no logon.

No prompt de comando do Windows, digite o seguinte comando bcp:

bcp AdventureWorks.HumanResources.Department format nul -c -x -f Department-c..xml –t, -T

O arquivo de formato gerado, Department-c.xml, contém os seguintes elementos XML:

<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="7"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="24"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
 </ROW>
</BCPFORMAT>

Para obter informações sobre a sintaxe desse arquivo de formato, consulte Sintaxe de esquema para arquivos de formato XML. Para obter informações sobre dados de caracteres, consulte Usando formato de caractere para importar ou exportar dados.

B. Criando um arquivo de formato XML para dados nativos

O exemplo a seguir cria um arquivo de formato XML, Department-n.xml, para a tabela AdventureWorksHumanResources.Department. O arquivo de formato usa tipos de dados nativos. O conteúdo do arquivo de formato gerado é apresentado após o comando.

O comando bcp contém os qualificadores a seguir.

Qualificadores

Descrição

formatnul-fformat_file-x

Especifica o arquivo de formato XML.

-n

Especifica tipos de dados nativos.

-T

Especifica que o utilitário bcp faça a conexão com o SQL Server de forma confiável usando segurança integrada. Se -T não for especificado, especifique -U e -P para ter êxito no logon.

No prompt de comando do Windows, digite o seguinte comando bcp:

bcp AdventureWorks.HumanResources.Department format nul -x -f Department-n..xml -n -T

O arquivo de formato gerado, Department-n.xml, contém os seguintes elementos XML:

<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="NativeFixed" LENGTH="2"/>
  <FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="NativeFixed" LENGTH="8"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
 </ROW>
</BCPFORMAT>

Para obter informações sobre a sintaxe desse arquivo de formato, consulte Sintaxe de esquema para arquivos de formato XML. Para obter informações sobre como usar dados nativos, consulte Usando formato nativo para importar ou exportar dados.

Mapeando campos de dados para colunas de tabelas

Como criado pelo bcp, um arquivo de formato descreve todas as colunas de tabela em ordem. Você pode modificar um arquivo de formato para reorganizar ou omitir linhas de tabela. Isso permite a personalização de um arquivo de formato cujos campos não são mapeados diretamente para as colunas da tabela. Para obter mais informações, consulte os seguintes tópicos: