Usando o formato nativo Unicode para importar ou exportar dados

O formato nativo Unicode é útil quando as informações devem ser copiadas de uma instalação do SQL Server à outra. O uso de formato nativo para dados do tipo não caractere economiza tempo, eliminando a conversão desnecessária de tipos de dados de e para o formato de caractere. O uso de formato de caractere Unicode para obter todos os dados de caractere impede a perda de qualquer caractere estendido durante a transferência de dados em massa entre servidores que usam páginas de código diferentes. Um arquivo de dados em formato nativo Unicode pode ser lido por qualquer método de importação em massa.

O formato nativo Unicode é recomendado para transferir em massa dados entre várias instâncias do SQL Server usando um arquivo de dados com caracteres estendidos DBCS. Para obter dados do tipo não caractere, o formato nativo Unicode usa tipos de dados nativos (banco de dados). Para obter dados de caractere, como char, nchar, varchar, nvarchar, text, varchar(max), nvarchar(max)e ntext, o formato nativo Unicode usa formato de dados de caractere Unicode.

Os dados sql_variant que são armazenados como um SQLVARIANT em um arquivo de dados do formato nativo Unicode operam da mesma maneira como em um arquivo de dados do formato nativo, exceto os valores char e varchar que são convertidos para nchar e nvarcharos quais dobram a quantidade de espaço de armazenamento exigido para as colunas afetadas. Os metadados originais são preservados e os valores são reconvertidos ao char original e ao tipo de dados varchar quando importados em massa em uma coluna de tabela.

ObservaçãoObservação

Para obter mais informações sobre o formato nativo, consulte Usando formato nativo para importar ou exportar dados.

Opções de comando para formato nativo Unicode

Você pode importar dados de formato nativo Unicode em uma tabela que usa bcp, BULK INSERT ou INSERT ... SELECT * FROM OPENROWSET(BULK...). Para um comando bcp ou uma instrução BULK INSERT, você pode especificar o formato de dados na linha de comando. Para uma instrução INSERT ... SELECT * FROM OPENROWSET(BULK...) é necessário especificar o formato dos dados em um arquivo de formato.

O formato nativo Unicode é suportado pelas seguintes opções:

Comando

Opção

Descrição

bcp

-N

Faz o utilitário bcp usar o formato nativo Unicode que usa tipos de dados nativos (banco de dados) para todos os dados do tipo não caractere e formato de dados de caractere Unicode para obter todos os dados de caracteres (char, nchar, varchar, nvarchar, texte ntext).

BULK INSERT

DATAFILETYPE ='widenative'

Usa o formato de caractere nativo Unicode na importação de dados em massa.

Para obter mais informações, consulte Utilitário bcp, BULK INSERT (Transact-SQL) ou OPENROWSET (Transact-SQL).

ObservaçãoObservação

Como alternativa, você pode especificar a formatação por campo, em um arquivo de formato. Para obter mais informações, consulte Arquivos de formato para importação ou exportação de dados.

Exemplos

Os exemplos a seguir demonstram como exportar em massa dados nativos com o bcp e importar em massa os mesmos dados com o BULK INSERT.

Tabela de exemplo

Os exemplos de importação em massa requerem que uma tabela denominada tabela myTestUniNativeData seja criada no banco de dados do exemplo AdventureWorks2008 no esquema dbo. Antes de executar os exemplos, é necessário criar essa tabela. No Editor de Consultas do SQL Server Management Studio, execute:

USE AdventureWorks2008R2;
GO
CREATE TABLE myTestUniNativeData (
   Col1 smallint,
   Col2 nvarchar(50),
   Col3 nvarchar(50)
   ); 

Para popular essa tabela e exibir o conteúdo resultante, execute as seguintes instruções:

INSERT INTO myTestUniNativeData(Col1,Col2,Col3)
   VALUES(1,'DataField2','DataField3');
INSERT INTO myTestUniNativeData(Col1,Col2,Col3)
   VALUES(2,'DataField2','DataField3');
GO
SELECT Col1,Col2,Col3 FROM myTestUniNativeData

Usando o bcp para exportar dados nativos em massa

Para exportar dados da tabela para o arquivo de dados, use o bcp com a opção out e os seguintes qualificadores:

Qualificadores

Descrição

-N

Especifica tipos de dados nativos.

-T

Especifica que o utilitário bcp se conecta ao SQL Server com uma conexão confiável usando segurança integrada. Se -T não for especificado, será necessário especificar -U e -P para ter êxito no logon.

O exemplo a seguir exporta dados em massa no formato nativo da tabela myTestUniNativeData em um novo arquivo de dados denominado arquivo de dados myTestUniNativeData-N.Dat. No prompt de comando do Microsoft Windows, digite:

bcp AdventureWorks2008R2..myTestUniNativeData out C:\myTestUniNativeData-N.Dat -N -T

Usando BULK INSERT para importar dados nativos em massa

Os exemplos a seguir usam BULK INSERT para importar os dados no arquivo de dados myTestUniNativeData-N.Dat na tabela myTestUniNativeData. No Editor de Consultas do SQL Server Management Studio, execute:

USE AdventureWorks2008R2;
GO
BULK INSERT myTestUniNativeData 
    FROM 'C:\myTestUniNativeData-N.Dat' 
   WITH (DATAFILETYPE='widenative'); 
GO
SELECT Col1,Col2,Col3 FROM myTestUniNativeData;
GO