Compartilhar via


Especificando formatos de dados para compatibilidade usando bcp

Ao exportar em massa dados Microsoft SQL Server para importação em massa em outro programa, como um programa de banco de dados, os formatos de dados padrão (nativo, caractere ou Unicode) na tabela de fonte poderiam ser incompatíveis com o layout de dados esperado por outro programa. Se uma incompatibilidade existir, quando você exportar os dados você deve descrever o layout dos dados.

ObservaçãoObservação

Se você desconhece formatos de dados para importar ou exportar dados, consulte Formatos de dados para importar ou exportar dados.

O comando bcp lhe permite especificar a estrutura de cada campo em um arquivo de dados quanto aos atributos de formato de dados seguintes:

  • Tipo de armazenamento de arquivo

    O tipo de armazenamento de arquivo descreve como são armazenados os dados no arquivo de dados. Podem ser exportados dados para um arquivo de dados como seu tipo de tabela de banco de dados (formato nativo), em sua representação de caractere (formato de caractere), ou como qualquer tipo de dados onde há suporte para conversão implícita; por exemplo, copiando um smallint como um int. Os tipos de dados definidos pelo usuário como tipos básicos são exportados. Para obter mais informações, consulte Especificando arquivo de armazenamento usando bcp.

  • Comprimento do prefixo

    Para fornecer o armazenamento de arquivo mais compacto para a exportação de dados em massa em formato nativo para um arquivo de dados, o comando bcp precede cada campo com um ou mais caracteres que indica o comprimento do campo. Esses caracteres são chamados caracteres de prefixo de comprimento. Para obter mais informações, consulte Especificando tamanho de prefixo em arquivos de dados.

  • Tamanho do campo

    O tamanho do campo indica o número máximo de caracteres que são exigidos para representar dados em formato de caractere. O tamanho do campo já é conhecido se os dados forem armazenados no formato nativo. Para obter mais informações, consulte Especificando tamanho do campo usando bcp.

  • Terminador de campo

    Para campos de dados de caracteres, caracteres terminadores opcionais permitem marcar o término de cada campo em um arquivo de dados (usando um terminador de campo) e o término de cada linha (usando um terminador de linha). Os caracteres terminadores são um modo de indicar aos programas de leitura o arquivo de dados onde um campo ou uma linha termina, e a outra começa. Para obter mais informações, consulte Especificando terminadores de campo e linha.

Visão geral dos prompts de campo específicos

Se um comando interativo bcp contiver a opção in ou out mas também não contiver a opção de arquivo de formato (- f) ou uma opção de formato de dados (- n, - c, - w ou - N), cada coluna na tabela de destino ou origem, o comando solicitará para cada um dos atributos precedentes, em troca. Em cada prompt, o comando bcp fornece um valor padrão baseado no tipo de dados SQL Server da coluna de tabela. Aceitando o valor padrão de todos os prompts, produz o mesmo resultado como especificando formato nativo (- n) na linha de comandos. Cada prompt exibe um valor padrão entre colchetes: [default]. Pressionando ENTER aceita o padrão exibido. Para especificar um valor diferente do padrão, insira o valor novo no prompt.

Exemplo

Os exemplos a seguir usam o comando bcp para exportar em massa dados da tabela HumanResources.myTeam para o arquivo myTeam.txt interativamente. Antes de executar o exemplo, é necessário criar essa tabela. Para obter informações sobre a tabela e como criá-la, consulte Criando a tabela HumanResources.myTeam.

O comando não especifica nem um arquivo de formato nem um tipo de dados, fazendo com que o bcp solicite informações de formato de dados. No prompt de comando do Microsoft Windows, digite:

bcp AdventureWorks2008R2.HumanResources.myTeam out myTeam.txt -T

Para cada coluna, o bcp solicita os valores de campo específicos. O exemplo seguinte mostra os prompts de campo especifico para as colunas EmployeeID e Name da tabela e sugere o tipo de armazenamento de arquivo padrão (o formato nativo) para cada coluna. Os comprimentos dos prefixos do EmployeeID e coluna Name são 0 e 2, respectivamente. O usuário especifica uma vírgula (,) como terminador de cada campo.

Enter the file storage type of field EmployeeID [smallint]:

Enter prefix-length of field EmployeeID [0]:

Enter field terminator [none]:,

Enter the file storage type of field Name [nvarchar]:

Enter prefix length of field Name [2]:

Enter field terminator [none]:,

.

.

.

São exibidos prompts equivalentes (quando necessário) para cada uma das colunas de tabela em ordem.

Armazenando dados campo por campo em um arquivo de formato não XML

Após todas as colunas de tabela serem especificadas, o comando bcp solicita que você gere um arquivo de formato não XML que armazena a informações campo por campo fornecidas (veja o exemplo anterior) opcionalmente. Se você escolher gerar um arquivo de formato, você poderá sempre que exportar dados fora daquela tabela ou importar dados estruturados em SQL Server.

ObservaçãoObservação

Você pode usar o arquivo de formato para importação em massa de um arquivo de dados em uma instância SQL Server para exportar dados em massa da tabela sem precisar especificar o formato. Para obter mais informações, consulte Arquivos de formato para importação ou exportação de dados.

O exemplo a seguir cria um arquivo de formato nomeado não XML myFormatFile.fmt:

Do you want to save this format information in a file? [Y/n] y

Host filename: [bcp.fmt]myFormatFile.fmt

O nome padrão para o arquivo de formato é bcp.fmt, mas você poderá especificar um nome de arquivo diferente se você preferir.

ObservaçãoObservação

Para um arquivo de dados que usa um único formato de dados para seu tipo de armazenamento de arquivo, como caractere ou formato nativo, você pode criar um arquivo de formato rapidamente sem exportar ou importar dados usando a opção format. Esta abordagem tem a vantagem de ser fácil e de lhe permitir criar um arquivo formato XML ou um não XML. Para obter mais informações, consulte Criando um arquivo de formato.

Nesta seção

Esta seção contém os seguintes tópicos:

Tópico

Atributo do formato de dados

Especificando arquivo de armazenamento usando bcp

Contém informações sobre como especificar o tipo de armazenamento de arquivo em um comando bcp.

Especificando tamanho de prefixo em arquivos de dados

Contém informações sobre como especificar o comprimento do prefixo em um comando bcp.

Especificando tamanho do campo usando bcp

Contém informações sobre como especificar o tamanho do campo em um comando bcp.

Especificando terminadores de campo e linha

Contém informações sobre como especificar os terminadores de linha e campo em um comando bcp.

Armazenamento de dados em formato de caractere

Contém informações sobre como são armazenados dados formatados de caractere em um arquivo de dados exportado.