Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Este artigo 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.
Ao importar em massa para uma tabela do SQL Server ou exportar em massa dados de uma tabela, você pode usar um arquivo de formato como um sistema flexível para gravar arquivos de dados. Arquivos de formato 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.
Limitações
A versão da bcp ferramenta (bcp.exe) usada para ler um arquivo de formatação deve ser a mesma ou posterior à versão usada para criar o arquivo de formatação. Por exemplo, o SQL Server 2025 (17.x) bcp pode ler um arquivo no formato versão 16.0, gerado pelo SQL Server 2022 (16.xbcp), mas o SQL Server 2022 (16.x) bcp não consegue ler um arquivo no formato versão 17.0, que é gerado pelo SQL Server 2025 (17.xbcp).
Observação
Essa sintaxe, incluindo inserção em massa, não tem suporte no Azure Synapse Analytics. No Azure Synapse Analytics e em outras integrações de plataforma de banco de dados de nuvem, efetue a movimentação de dados por meio da instrução COPY no Azure Data Factory ou usando instruções T-SQL, como COPY INTO e PolyBase.
Crie arquivos de formato
O SQL Server suporta 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 arquivos de formato porque eles oferecem diversas vantagens em relação aos arquivos de formato não XML.
Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que você pode baixar na página inicial Microsoft SQL Server Samples and Community Projects. A Adventure Works Cycles é uma empresa de fabricação fictícia utilizada para demonstrar conceitos e cenários de banco de dados.
Criar um arquivo de formatação
Para usar bcp para criar um arquivo de formatação, especifique o format argumento e use nul em vez de um caminho de arquivo de dados. A format opção sempre exige a -f opção.
Para criar um arquivo em formato XML, você deve especificar a -x opção, como bcp <table_or_view> format nul -f <format_file_name> -x.
Para distinguir um arquivo em formato XML, use .xml como extensão de nome de arquivo, por exemplo, MyTable.xml.
Para informações sobre a estrutura e os campos dos arquivos em formato XML, veja arquivos em formato XML.
Exemplos
Esta seção contém exemplos que mostram como usar bcp para criar um arquivo de formatação. A tabela HumanResources.Department contém quatro colunas: DepartmentID, Name, GroupNamee ModifiedDate.
A. Crie um arquivo de formato para os dados dos caracteres
O exemplo a seguir cria um arquivo de formato para a HumanResources.Department tabela usando formatos de dados de caracteres.
Crie um arquivo em formato XML chamado Department-c.xml. O arquivo de formato usa um terminador de campo não padrão (,). A seção a seguir mostra o conteúdo do arquivo de formato gerado.
O bcp comando contém os seguintes qualificativos.
| Qualificadores | Descrição |
|---|---|
format nul -x -f <format_file> |
Especifica o arquivo de formato XML. |
-c |
Especifica dados de caracteres. |
-t, |
Especifica uma vírgula (,) como terminador de campo.Observação: Se o arquivo de dados usar o terminador de campo padrão ( \t), o parâmetro -t será desnecessário. |
-T |
Especifica que bcp se conecta ao SQL Server com uma conexão confiável usando segurança integrada. Se você não especificar -T, precisa especificar -U e -P para entrar com sucesso. |
No prompt de comando do Windows, digite o seguinte comando bcp :
bcp AdventureWorks2025.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="http://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 informações sobre a sintaxe desse arquivo de formato, veja arquivos de formato XML. Para informações sobre dados de caracteres, veja Usar formato de caractere para importar ou exportar dados.
B. Crie um arquivo de formatação para dados nativos
O exemplo a seguir cria um arquivo de formato para a HumanResources.Department tabela usando tipos de dados nativos.
Crie um arquivo em formato XML chamado Department-n.xml. A seção a seguir mostra o conteúdo do arquivo de formato gerado.
O bcp comando contém os seguintes qualificativos.
| Qualificadores | Descrição |
|---|---|
format nul -x -f <format_file> |
Especifica o arquivo de formato XML. |
-n |
Especifica tipos de dados nativos. |
-T |
Especifica que bcp se conecta ao SQL Server com uma conexão confiável usando segurança integrada. Se você não especificar -T, precisa especificar -U e -P para entrar com sucesso. |
No prompt de comando do Windows, digite o seguinte comando bcp :
bcp AdventureWorks2025.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="http://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 informações sobre a sintaxe desse arquivo de formato, veja arquivos de formato XML. Para informações sobre como usar dados nativos, veja Usar formato nativo para importar ou exportar dados.
C. Criar 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 AdventureWorks2025.HumanResources.Department format nul -T -N -f Department-n.fmt
Para mais informações sobre como usar dados nativos Unicode, veja Usar o Formato Nativo Unicode para Importar ou Exportar Dados.
D. Criar 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 AdventureWorks2025.HumanResources.Department format nul -T -w -f Department-w.fmt
Para mais informações sobre como usar dados de caracteres Unicode, veja Usar formato de caracteres Unicode para importar ou exportar dados.
E. Usar um arquivo de formato com a opção de código de página
Quando você cria um arquivo de formato usando bcp format, ele grava informações sobre a ordenação e a página de código no arquivo de formato.
O arquivo de formato de exemplo a seguir, para uma tabela com cinco colunas, inclui a ordenação.
13.0
5
1 SQLCHAR 0 0 "\t" 1 c_0 Cyrillic_General_CS_AS
2 SQLCHAR 0 0 "\t" 2 c_1 Cyrillic_General_CS_AS
3 SQLCHAR 0 3000 "\t" 3 c_2 Cyrillic_General_CS_AS
4 SQLCHAR 0 5 "\t" 4 c_3 ""
5 SQLCHAR 0 41 "!!!\r\r\n" 5 c_4 ""
Se você tentar importar dados para o SQL Server ao usar bcp in -c -C65001 -f format_file ... ou com BULK INSERT ou OPENROWSET com FORMATFILE='format_file' CODEPAGE=65001 ..., as informações de agrupamento ou de página de código no arquivo de formato têm precedência sobre a opção 65001.
Portanto, se você gerar um arquivo de formatação, deve deletar manualmente as informações de compilação do arquivo de formato gerado antes de começar a importar dados de volta para o SQL Server.
O exemplo a seguir mostra o arquivo de formato sem informações de ordenação.
13.0
5
1 SQLCHAR 0 0 "\t" 1 c_0 ""
2 SQLCHAR 0 0 "\t" 2 c_1 ""
3 SQLCHAR 0 3000 "\t" 3 c_2 ""
4 SQLCHAR 0 5 "\t" 4 c_3 ""
5 SQLCHAR 0 41 "!!!\r\r\n" 5 c_4 ""
Mapear campos de dados para colunas de tabelas
Um arquivo de formato criado por bcp descreve todas as colunas da tabela em ordem. Você pode modificar um arquivo de formato para reorganizar ou omitir colunas da tabela. Você pode personalizar um arquivo de formato para um arquivo de dados cujos campos não correspondem diretamente às colunas da tabela. Para obter mais informações, consulte os seguintes artigos:
- Use um arquivo de formato para pular uma coluna de tabela
- Use um arquivo de formato para pular um campo de dados
- Use um arquivo de formato para mapear colunas de tabelas em campos de arquivo de dados