Usar o formato nativo Unicode para importar ou exportar dados (SQL Server)

O formato nativo Unicode é útil quando as informações devem ser copiadas de uma instalação MicrosoftSQL Server a 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.

Opções de comando para formato nativo Unicode

Você pode importar dados de formato nativo Unicode para uma tabela usando bcp, BULK INSERT or 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 ... instrução 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 (SQL Server).

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 requerem que seja criada uma tabela denominada myTestUniNativeData no banco de dados de exemplo AdventureWorks no esquema dbo. Antes de executar os exemplos, é necessário criar essa tabela. No Editor de Consultas do SQL Server Management Studio, execute:

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

Para preencher esta 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 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, especifique -U e -P para o logon ser efetuado com êxito.

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

bcp AdventureWorks..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 AdventureWorks;
GO
BULK INSERT myTestUniNativeData 
    FROM 'C:\myTestUniNativeData-N.Dat' 
   WITH (DATAFILETYPE='widenative'); 
GO
SELECT Col1,Col2,Col3 FROM myTestUniNativeData;
GO

Tarefas relacionadas

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

Consulte também

Referência

Utilitário bcp

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

Tipos de dados (Transact-SQL)