Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
No SQL Server, há suporte para dois tipos de arquivos de formato para exportação e importação em massa: arquivos de formato não XML e arquivos de formato XML.
Benefícios dos arquivos de formato não-XML
Você pode criar um arquivo de formato não-XML automaticamente especificando a opção de formato em um comando bcp .
Quando você especifica um arquivo de formato existente em um comando bcp , o comando usa os valores que são registrados no arquivo de formato e não solicita o tipo de armazenamento de arquivo, comprimento do prefixo, comprimento do campo ou terminador de campo.
Você pode criar um arquivo de formato para um tipo de dados específico, como dados de caracteres ou dados nativos.
Você pode criar um arquivo de formato não XML que contenha atributos especificados interativamente para cada campo de dados. Para obter mais informações, consulte Especificar formatos de dados de compatibilidade ao usar bcp (SQL Server).
Os arquivos de formato XML oferecem várias vantagens em relação aos arquivos de formato não-XML. Para obter mais informações, consulte Arquivos de formato XML (SQL Server).
Observação
Esta sintaxe, incluindo a inserção em massa, não é suportada no Azure Synapse Analytics. No Azure Synapse Analytics e em outras integrações de plataforma de banco de dados em nuvem, efetue a movimentação de dados através da instrução COPY no Azure Data Factory, ou usando instruções T-SQL, como COPY INTO e PolyBase.
Estrutura de arquivos de formato não-XML
Um arquivo de formato não-XML é um arquivo de texto que tem uma estrutura específica. O arquivo de formato não-XML contém informações sobre o tipo de armazenamento de arquivo, comprimento do prefixo, comprimento do campo e terminador de campo de cada coluna da tabela.
A ilustração a seguir ilustra os campos de arquivo de formato para um arquivo de formato não XML de exemplo.
Os campos Versão e Número de colunas ocorrem apenas uma vez. Seus significados são descritos na tabela a seguir.
| Campo de arquivo de formato | Descrição |
|---|---|
| Versão | Número da versão do utilitário bcp : 9.0 = SQL Server 2005 (9.x) 10.0 = SQL Server 2008 (10.0.x) 11.0 = SQL Server 2012 (11.x) 12.0 = SQL Server 2014 (12.x) 13.0 = SQL Server 2016 (13.x) 14.0 = SQL Server 2017 (14.x) 15.0 = SQL Server 2019 (15.x) 16.0 = SQL Server 2022 (16.x) O número da versão é reconhecido apenas pelo bcp, não pelo Transact-SQL. Nota: A versão do utilitário bcp usada para ler um arquivo de formato deve ser a mesma ou uma versão posterior à usada para criar o arquivo de formato. Por exemplo, o SQL Server 2012 (11.x) bcp pode ler um arquivo de formato versão 10.0, que é gerado pelo SQL Server 2008 (10.0.x) bcp, mas o SQL Server 2008 (10.0.x) bcp não pode ler um arquivo de formato versão 12.0, que é gerado pelo SQL Server 2014 (12.x) bcp. |
| Número de colunas | Número de campos no ficheiro de dados. Este número deve ser o mesmo em todas as linhas. |
Os outros campos de arquivo de formato descrevem os campos de dados que devem ser importados ou exportados em massa. Cada campo de dados requer uma linha separada no arquivo de formato. Cada linha de arquivo de formato contém valores para os campos de arquivo de formato descritos na tabela a seguir.
| Campo de arquivo de formato | Descrição |
|---|---|
| Ordem de campo do ficheiro host | Um número que indica a posição de cada campo no arquivo de dados. O primeiro campo da linha é 1, e assim por diante. |
| Tipo de dados do arquivo host | Indica o tipo de dados que é armazenado em um determinado campo do arquivo de dados. Com arquivos de dados ASCII, use SQLCHAR; Para arquivos de dados de formato nativo, use tipos de dados padrão. Para obter mais informações, consulte Especificar o tipo de armazenamento de arquivos usando bcp (SQL Server). |
| Comprimento do prefixo | Número de caracteres de prefixo de comprimento para o campo. Os comprimentos de prefixo válidos são 0, 1, 2, 4 e 8. Para evitar especificar o prefixo de comprimento, defina-o como 0. Um prefixo de comprimento deve ser especificado se o campo contiver NULL valores de dados. Para obter mais informações, consulte Especificar o comprimento do prefixo em arquivos de dados usando bcp (SQL Server). |
| Comprimento dos dados do ficheiro host | Comprimento máximo, em bytes, do tipo de dados armazenados no campo específico do ficheiro de dados. Se você estiver criando um arquivo de formato não XML para um arquivo de texto delimitado, poderá especificar 0 para o comprimento de dados do arquivo host de cada campo de dados. Quando um arquivo de texto delimitado com um comprimento de prefixo de 0 e um terminador é importado, o valor de comprimento de campo é ignorado, porque o espaço de armazenamento usado pelo campo é igual ao comprimento dos dados mais o terminador. Para obter mais informações, consulte Especificar comprimento de campo usando bcp (SQL Server). |
| Terminator | Delimitador para separar os campos em um arquivo de dados. Os terminadores comuns são vírgula (,), tab (\t) e fim de linha (\r\n). Para obter mais informações, consulte Especificar terminadores de campo e linha (SQL Server). |
| Ordem das colunas do servidor | Ordem em que as colunas aparecem na tabela do SQL Server. Por exemplo, se o quarto campo no arquivo de dados for mapeado para a sexta coluna em uma tabela do SQL Server, a ordem da coluna do servidor para o quarto campo será 6. Para impedir que uma coluna na tabela receba dados do arquivo de dados, defina o valor da ordem da coluna do servidor como 0. |
| Nome da coluna do servidor | Nome da coluna copiada da tabela do SQL Server. O nome real do campo não é obrigatório, mas o campo no arquivo de formato não deve estar em branco. |
| Ordenação de colunas | O agrupamento usado para armazenar dados de caracteres e Unicode no arquivo de dados. |
Observação
Você pode modificar um arquivo de formato para permitir a importação em massa de um arquivo de dados no qual o número ou a ordem dos campos são diferentes do número ou da ordem das colunas da tabela. Para obter mais informações, consulte a lista Tarefas relacionadas .
Exemplo de um arquivo de formato não-XML
O exemplo a seguir mostra um arquivo de formato não-XML criado anteriormente (myDepartmentIdentical-f-c.fmt). Este ficheiro descreve um campo de dados de caracteres para cada coluna da tabela HumanResources.Department no banco de dados de exemplo AdventureWorks2025.
O arquivo de formato gerado, myDepartmentIdentical-f-c.fmt, contém as seguintes informações:
12.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 ""
Observação
Para obter uma ilustração que mostra os campos de arquivo de formato em relação a esse arquivo de formato não XML de exemplo, consulte Estrutura de arquivos de formato não XML.
Tarefas relacionadas
- Criar um arquivo de formato com bcp (SQL Server)
- Usar um arquivo de formato para importar dados em massa (SQL Server)
- Usar um arquivo de formato para ignorar uma coluna de tabela (SQL Server)
- Usar um arquivo de formato para ignorar um campo de dados (SQL Server)
- Usar um arquivo de formato para mapear colunas de tabela para campos de arquivo de dados (SQL Server)