Compartilhar via


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

O formato nativo Unicode é útil quando as informações precisam ser copiadas de uma instalação do Microsoft SQL Server para 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 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 com que o utilitário bcp use o formato nativo Unicode, que usa tipos de dados nativos (banco de dados) para todos os dados não gráficos e formato de dados de caractere Unicode para todos os dados de caracteres (char, nchar, varcharnvarchar, text, e 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ção

Como alternativa, você pode especificar a formatação por campo, em um arquivo de formato. Para obter mais informações, confira 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 BULK INSERT.

Tabela de exemplo

Os exemplos exigem que seja criada uma tabela denominada myTestUniNativeData no banco de dados de exemplo AdventureWorks sob o esquema dbo. Antes de executar os exemplos, é necessário criar essa tabela. Em SQL Server Management Studio Editor de Consultas, 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, será necessário especificar -U e -P para que o logon tenha ê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. Em SQL Server Management Studio Editor de Consultas, execute:

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

Related Tasks

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)