Especificar tipo de armazenamento de arquivo usando bcp (SQL Server)

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.

Solicitação de bcp para o tipo de armazenamento de arquivo

Se um comando interativo bcp contiver a opção in ou out sem a opção de arquivo de formato (-f) ou uma opção de formato de dados (-n, -c, -w ou -N), o comando solicitará o tipo de armazenamento de arquivo de cada campo de dados, como a seguir:

Enter the file storage type of field <field_name> [<default>]:

Sua resposta para esta solicitação depende da tarefa que você executa, como segue:

  • Para exportar dados em massa de uma instância do Microsoft SQL Server para um arquivo de dados no armazenamento mais compacto possível (formato de dados nativo), aceite os tipos de armazenamento de arquivo padrão fornecidos pelo bcp. Para obter uma lista de tipos de armazenamento de arquivos nativos, digite "Tipos de Armazenamento de Arquivos Nativos", mais adiante neste tópico.

  • Para agrupar dados exportados de uma instância do SQL Server para um arquivo de dados no formato de caractere, especifique char como o tipo de armazenamento de arquivo para todas as colunas na tabela.

  • Para agrupar dados importados para uma instância do SQL Server de um arquivo de dados, especifique o tipo de armazenamento de arquivo como char para tipos armazenados no formato de caractere; e para dados armazenados no formato de tipo de dados nativo, especifique um dos tipos de armazenamento de arquivo como apropriado:

    Tipo de armazenamento de arquivo

    Digite no prompt de comando

    char1

    c[har]

    varchar

    c[har]

    nchar

    w

    nvarchar

    w

    text2

    T[ext]

    ntext2

    W

    binary

    x

    varbinary

    x

    image2

    I[mage]

    datetime

    d[ate]

    smalldatetime

    D

    time

    te

    date

    de

    datetime2

    d2

    datetimeoffset

    do

    decimal

    n

    numeric

    n

    float

    f[loat]

    real

    r

    Int

    i[nt]

    bigint

    B[igint]

    smallint

    s[mallint]

    tinyint

    t[inyint]

    money

    m[oney]

    smallmoney

    M

    bit

    b[it]

    uniqueidentifier

    u

    sql_variant

    V[ariant]

    timestamp

    x

    UDT (um tipo de dados definido pelo usuário)

    U

    XML

    X

    1 A interação do tamanho do campo, do comprimento do prefixo e dos terminadores determina a quantidade de espaço de armazenamento alocado em um arquivo de dados para dados que não são de caractere que é exportada como o tipo de armazenamento de arquivo char:

    2 Os tipos de dados ntext, text e image serão removidos em uma versão futura do SQL Server. No novo projeto de desenvolvimento, evite usar esses tipos de dados e planeje modificar os aplicativos que atualmente os utilizam. Use nvarchar(max), varchar(max) e varbinary(max) em seu lugar.

Tipos de armazenamento de arquivos nativos

Cada tipo de armazenamento de arquivo nativo é registrado no arquivo de formato como um tipo de dados do arquivo host correspondente.

Tipo de armazenamento de arquivo

Tipo de dados do arquivo host

char1

SQLCHAR

varchar

SQLCHAR

nchar

SQLNCHAR

nvarchar

SQLNCHAR

text2

SQLCHAR

ntext2

SQLNCHAR

binary

SQLBINARY

varbinary

SQLBINARY

image2

SQLBINARY

datetime

SQLDATETIME

smalldatetime

SQLDATETIM4

decimal

SQLDECIMAL

numeric

SQLNUMERIC

float

SQLFLT8

real

SQLFLT4

int

SQLINT

bigint

SQLBIGINT

smallint

SQLSMALLINT

tinyint

SQLTINYINT

money

SQLMONEY

smallmoney

SQLMONEY4

bit

SQLBIT

uniqueidentifier

SQLUNIQUEID

sql_variant

SQLVARIANT

timestamp

SQLBINARY

UDT (um tipo de dados definido pelo usuário)

SQLUDT

1 Arquivos de dados armazenados no formato de caractere usam char como o tipo de armazenamento de arquivo. Então, para arquivos de dados de caractere, SQLCHAR é o único tipo de dados que aparece em um arquivo de formato.

2 Você não pode agrupar dados importados nas colunas text, ntexte image que possuem valores PADRÃO.

Considerações adicionais para tipos de armazenamento de arquivo

Quando você agrupa dados exportados de uma instância do SQL Server para um arquivo de dados:

  • Você sempre pode especificar char como o tipo de armazenamento de arquivo.

  • Se você inserir um tipo de armazenamento de arquivo que represente uma conversão implícita inválida, bcp falhará; por exemplo, embora você possa especificar int para dados smallint, se você especificar smallint para dados int, isso resultará em erros de estouro.

  • Quando tipos de dados que não são de caractere, como float, money, datetime ou int, são armazenados como seus tipos de bancos de dados, os dados são gravados para o arquivo de dados no formato nativo do SQL Server.

    ObservaçãoObservação

    Depois da especificação interativa de todos os campos em um comando bcp, o comando solicita que você salve suas respostas para cada campo em um arquivo de formato não XML. Para obter mais informações sobre arquivos de formato não XML, consulte Arquivos de formato não XML (SQL Server).

Consulte também

Referência

Utilitário bcp

Tipos de dados (Transact-SQL)

Conceitos

Especificar tamanho do campo usando bcp (SQL Server)

Especificar terminadores de campo e linha (SQL Server)

Especificar o tamanho de prefixo em arquivos de dados usando bcp (SQL Server)