Importar dados de formato nativo e de caractere de versões anteriores do SQL Server
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
No SQL Server 2014 (12.x) e posterior, você pode usar bcp para importar dados nativos e de formatação de caracteres do SQL Server 2000 (8.x), SQL Server 2005 (9.x), SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x) 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 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 (8.x) | -V80 |
SQL Server 2005 (9.x) | -V90 |
SQL Server 2008 (10.0.x) | -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 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) | 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
Obcp 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.
Related Tasks
Para usar formatos de dados para importação ou exportação em massa
Usar o formato de caractere para importar ou exportar dados (SQL Server)
Usar um formato nativo para importar ou exportar dados (SQL Server)
Usar o formato de caractere Unicode para importar ou exportar dados (SQL Server)
Usar o formato nativo Unicode para importar ou exportar dados (SQL Server)
Confira 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)