Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O formato nativo Unicode é útil quando as informações devem ser copiadas de uma instalação do Microsoft SQL Server para outra. O uso de formato nativo para dados sem caracteres economiza tempo, eliminando a conversão desnecessária de tipos de dados de e para o formato de caracteres. O uso do formato de caractere Unicode para todos os dados de caracteres evita a perda de caracteres estendidos durante a transferência em massa de dados entre servidores usando 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 a transferência em massa de dados entre várias instâncias do SQL Server usando um arquivo de dados que contém caracteres estendidos ou DBCS. Para dados sem caracteres, o formato nativo Unicode usa tipos de dados nativos (banco de dados). Para dados de caracteres, como char, nchar, varchar, nvarchar, text, varchar(max), nvarchar(max) e ntext, o formato nativo Unicode usa o formato de dados de caractere Unicode.
Os dados sql_variant armazenados como SQLVARIANT em um arquivo de dados de formato nativo Unicode operam da mesma maneira que em um arquivo de dados de formato nativo, exceto que os valores char e varchar são convertidos em nchar e nvarchar, o que dobra a quantidade de armazenamento necessária para as colunas afetadas. Os metadados originais são preservados e os valores são convertidos de volta para seus tipos de dados char e varchar originais quando importados em massa para 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 OPENROWSET BULK.
- Para um comando bcp ou instrução BULK INSERT , você pode especificar o formato de dados na instrução.
- Para uma instrução OPENROWSET BULK, deve-se especificar o formato de dados num arquivo de formato.
O formato nativo Unicode é suportado pelas seguintes opções de comando:
| Comando | Opção | Descrição |
|---|---|---|
bcp |
-N |
Faz com que o bcp utilitário use o formato nativo Unicode, que usa tipos de dados nativos (banco de dados) para todos os dados sem caracteres e o formato de dados de caracteres Unicode para todos os dados de caracteres (char, nchar, varchar, nvarchar, text e ntext). |
BULK INSERT |
DATAFILETYPE ='widenative' |
Usa o formato nativo Unicode ao importar dados em massa. |
OPENROWSET |
N/A | Deve usar um arquivo de formato |
Observação
Como alternativa, você pode especificar a formatação por campo em um arquivo de formato. Para obter mais informações, consulte Formatar arquivos para importar ou exportar dados (SQL Server).
Exemplo de condições de ensaio
Os exemplos neste tópico baseiam-se na tabela myWidenative de exemplo e no arquivo de myWidenative.fmtformato . Substitua os caminhos de arquivo local por um caminho de arquivo local em seu sistema.
Tabela de exemplo
O script a seguir cria um banco de dados de teste, uma tabela nomeada myWidenative e preenche a tabela com alguns valores iniciais. Execute o seguinte Transact-SQL:
CREATE DATABASE TestDatabase;
GO
USE TestDatabase;
CREATE TABLE dbo.myWidenative (
PersonID smallint NOT NULL,
FirstName nvarchar(25) NOT NULL,
LastName nvarchar(30) NOT NULL,
BirthDate date,
AnnualSalary money
);
-- Populate table
INSERT TestDatabase.dbo.myWidenative
VALUES (1, N'ϴAnthony', N'Grosse', '02-23-1980', 65000.00),
(2, N'❤Alica', N'Fatnowna', '11-14-1963', 45000.00),
(3, N'☎Stella', N'Rossenhain', '03-02-1992', 120000.00);
-- Review Data
SELECT * FROM TestDatabase.dbo.myWidenative;
Exemplo de arquivo de formato não-XML
O SQL Server oferece suporte a dois tipos de arquivo de formato: formato não XML e formato XML. O formato não XML é o formato original suportado por versões anteriores do SQL Server. Consulte Usar arquivos de formato não XML (SQL Server) para obter informações detalhadas. O comando a seguir usará o utilitário bcp para gerar um arquivo de formato não-xml, myWidenative.fmt, com base no esquema de myWidenative.
- Para usar um comando bcp para criar um arquivo de formato, especifique o
formatargumento e usenulem vez de um caminho de arquivo de dados. - A opção de formato também requer a
-fopção. -
cé usado para especificar dados de caracteres -
Té usado para especificar uma conexão confiável usando segurança integrada.
Em um prompt de comando, digite os seguintes comandos:
bcp TestDatabase.dbo.myWidenative format nul -f D:\BCP\myWidenative.fmt -T -N
REM Review file
Notepad D:\BCP\myWidenative.fmt
Importante
Verifique se o arquivo de formato não XML termina com um retorno de carro\feed de linha. Caso contrário, você provavelmente receberá a seguinte mensagem de erro:
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]I/O error while reading BCP format file
Exemplos
Os exemplos abaixo usam o banco de dados e formatam os arquivos criados acima.
Usar o formato nativo bcp e Unicode para exportar dados
O -N switch e o OUT comando.
O arquivo de dados criado neste exemplo será usado em todos os exemplos subsequentes.
Em um prompt de comando, digite os seguintes comandos:
bcp TestDatabase.dbo.myWidenative OUT D:\BCP\myWidenative.bcp -T -N
REM Review results
NOTEPAD D:\BCP\myWidenative.bcp
Use o formato nativo bcp e Unicode para importar dados sem um arquivo de formato
O -N switch e o IN comando.
Em um prompt de comando, digite os seguintes comandos:
REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myWidenative;"
REM Import data
bcp TestDatabase.dbo.myWidenative IN D:\BCP\myWidenative.bcp -T -N
REM Review results is SSMS
Use o formato nativo bcp e Unicode para importar dados com um arquivo de formato não XML
Os interruptores -N e -f e o comando IN.
Em um prompt de comando, digite os seguintes comandos:
REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myWidenative;"
REM Import data
bcp TestDatabase.dbo.myWidenative IN D:\BCP\myWidenative.bcp -f D:\BCP\myWidenative.fmt -T -N
REM Review results is SSMS
Use o formato nativo BULK INSERT e Unicode sem um arquivo de formato
O DATAFILETYPE argumento.
Execute o seguinte Transact-SQL no Microsoft SQL Server Management Studio (SSMS):
TRUNCATE TABLE TestDatabase.dbo.myWidenative; -- for testing
BULK INSERT TestDatabase.dbo.myWidenative
FROM 'D:\BCP\myWidenative.bcp'
WITH (DATAFILETYPE = 'widenative' );
-- review results
SELECT * FROM TestDatabase.dbo.myWidenative;
Utilize BULK INSERT e o formato nativo Unicode com um ficheiro de formato não XML
O FORMATFILE argumento.
Execute o seguinte Transact-SQL no Microsoft SQL Server Management Studio (SSMS):
TRUNCATE TABLE TestDatabase.dbo.myWidenative; -- for testing
BULK INSERT TestDatabase.dbo.myWidenative
FROM 'D:\BCP\myWidenative.bcp'
WITH ( FORMATFILE = 'D:\BCP\myWidenative.fmt' );
-- review results
SELECT * FROM TestDatabase.dbo.myWidenative;
Utilize o OPENROWSET e o formato nativo Unicode com um ficheiro de formato não XML
O FORMATFILE argumento.
Execute o seguinte Transact-SQL no Microsoft SQL Server Management Studio (SSMS):
TRUNCATE TABLE TestDatabase.dbo.myWidenative; -- for testing
INSERT INTO TestDatabase.dbo.myWidenative
SELECT * FROM OPENROWSET (
BULK 'D:\BCP\myWidenative.bcp',
FORMATFILE = 'D:\BCP\myWidenative.fmt'
) AS t1;
-- review results
SELECT * FROM TestDatabase.dbo.myWidenative;
Tarefas relacionadas
Para usar formatos de dados para importação ou exportação em massa:
- Importar dados nativos e de formato de caractere de versões anteriores do SQL Server
- Usar formato de caractere para importar ou exportar dados (SQL Server)
- Usar formato nativo para importar ou exportar dados (SQL Server)
- Usar o formato de caractere Unicode para importar ou exportar dados (SQL Server)