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

Aplica-se a: simSQL Server (todas as versões compatíveis) SimBanco de Dados SQL do Azure SimInstância Gerenciada do Azure SQL simAzure Synapse Analytics simParallel Data Warehouse

No SQL Server 2014 (12.x) e posterior, você pode usar o bcp para importar os dados de formato de caractere e nativos de SQL Server 2000 (8.x), SQL Server 2005 (9.x), SQL Server 2008, SQL Server 2008 R2 ou SQL Server 2012 (11.x) usando a opção -V. A opção -V faz com que o SQL Server use tipos de dados da versão anterior especificada do SQL Servere 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 (8.x) -V80
SQL Server 2005 (9.x) -V90
SQL Server 2008 -V100
SQL Server 2012 (11.x) -V 110

Interpretação de tipos de dados

SQL Server 2005 (9.x) 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 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 6 x 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) imagem imagem imagem
XML ntext ntext ntext
UDT** imagem imagem imagem

*Esse tipo tem suporte nativo.

**UDT indica um tipo definido pelo usuário.

Exportar usando – V 80

Quando você exporta dados em massa usando a opção -V80, dados nvarchar(max) , varchar(max) , varbinary(max) , XML e UDT no modo nativo são armazenados com um prefixo de 4 bytes, como dados de texto, imagem e ntext, em vez de com um prefixo de 8 bytes, que é o padrão para o SQL Server 2005 (9.x) e 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.

Importante

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.

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

Consulte Também

Utilitário bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Tipos de dados (Transact-SQL)
Compatibilidade com versões anteriores do Mecanismo de Banco de Dados do SQL Server
CAST e CONVERT (Transact-SQL)