Importar dados de formato de caractere e nativo de versões anteriores do SQL Server

No SQL Server 2012, você pode usar o bcp para importar dados de formato de caractere e nativo do SQL Server 2000, do SQL Server 2005 ou do SQL Server 2008 usando a opção -V. A opção -V faz com que o SQL Server 2012 use tipos de dados da versão anterior especificada do SQL Server e o formato de arquivo de dados é igual ao formato da versão anterior.

Para especificar uma versão anterior do SQL Server para um arquivo de dados, use a opção -V com os seguintes qualificadores:

Versão do SQL Server

Qualificador

SQL Server 2000 

-V 80

SQL Server 2005

-V 90

SQL Server 2008

-V 100

Interpretação de tipos de dados que foram introduzidos no SQL Server 2005

O SQL Server 2005 e versões posteriores oferecem suporte para alguns novos tipos. Para importar um novo tipo de dados para uma versão anterior do SQL Server, o tipo de dados deve ser armazenado em um formato legível pelos clientes bcp antigos. A tabela a seguir resume como os novos tipos de dados do SQL Server 2005 são convertidos para compatibilidade com versões anteriores do SQL Server.

Novos tipos de dados no SQL Server 2005

Tipos de dados compatíveis na versão 6x

Tipos de dados compatíveis na versão 70

Tipos de dados compatíveis na versão 80

bigint

decimal

decimal

*

sql_variant

text

nvarchar(4000)

*

varchar(max)

text

text

text

nvarchar(max)

ntext

ntext

ntext

varbinary(max)

image

image

image

XML

ntext

ntext

ntext

UDT1

image

image

image

* Esse tipo tem suporte nativo.

1 UDT indica um tipo definido pelo usuário.

Exportando do SQL Server 2005 e versões posteriores

Quando você exporta dados em massa usando a opção –V 80 do SQL Server 2005 ou de versões posteriores, nvarchar(max), varchar(max), varbinary(max), XML e UDT, dados no modo nativo são armazenados com um prefixo de 4 bytes, como dados text, image e ntext em vez de um prefixo de 8 bytes, que é o padrão do SQL Server 2005 e de versões posteriores.

Copiando valores de dados

O bcp usa a API de cópia em massa do ODBC. Portanto, para importar valores de data para o SQL Server, o bcp usa o formato de data do ODBC (yyyy-mm-dd hh:mm:ss[.f...]).

O comando bcp exporta arquivos de dados de formato de caractere usando o formato padrão ODBC para os valores datetime e smalldatetime. Por exemplo, uma coluna datetime que contém a data 12 Aug 1998 é copiada em massa em um arquivo de dados como a cadeia de caracteres 1998-08-12 00:00:00.000.

Observação importanteImportante

Ao importar dados em um campo smalldatetime com o bcp, verifique se o valor por segundo é 00.000; caso contrário, a operação falhará. O tipo de dados smalldatetime só mantém valores do minuto mais próximo. BULK INSERT e INSERT ... SELECT * FROM OPENROWSET(BULK...) não falharão nesta instância, mas truncarão o valor de segundos.

Tarefas relacionadas

Para usar formatos de dados para importação ou exportação em massa

Ícone de seta usado com o link Voltar ao Início[Top]

Consulte também

Referência

Utilitário bcp

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

Tipos de dados (Transact-SQL)

CAST e CONVERT (Transact-SQL)

Outros recursos

Compatibilidade com versões anteriores do Mecanismo de Banco de Dados do SQL Server