Использование собственного формата Юникода для импорта или экспорта данных

Собственный формат Юникода может быть полезен при копировании данных с одной установки Microsoft SQL Server на другую. Использование собственного формата для несимвольных данных позволяет сэкономить время благодаря исключению ненужных преобразований типов данных в символьный формат и обратно. Использование символьного формата Юникода для всех символьных данных предотвращает потерю дополнительных символов в ходе массовой передачи данных между серверами, использующими различные кодовые страницы. Файл данных в собственном формате Юникода может быть считан с помощью любого метода массового импорта.

Собственный формат Юникода рекомендуется использовать для массовой передачи данных между несколькими экземплярами SQL Server с помощью файла данных, который содержит дополнительный набор символов или символы в кодировке DBCS. В отношении несимвольных данных собственный формат Юникода использует собственные (для базы данных) типы данных. В отношении символьных данных, таких как char, nchar, varchar, nvarchar, text, varchar(max), nvarchar(max) и ntext, собственный формат Юникода использует формат данных Юникода.

Данные типа sql_variant, которые хранятся в виде инструкции SQLVARIANT в файле собственного формата Юникода, функционируют точно так, как в файле данных собственного формата, за исключением того, что значения типа char и varchar преобразуются в nchar и nvarchar, что требует вдвое больше места для хранения столбцов, подлежащих преобразованию. Исходные метаданные сохраняются, а значения преобразуются обратно в исходные типы данных char и varchar в ходе массового импорта в столбец таблицы.

ms189941.note(ru-ru,SQL.90).gifПримечание.
Дополнительные сведения о собственном формате см. в разделе Использование собственного формата для импорта и экспорта данных.

Командные параметры для собственного формата Юникода

Импортировать в таблицу данные в собственном формате Юникода можно с помощью программы bcp и инструкций BULK INSERT или INSERT ... SELECT * FROM OPENROWSET(BULK...). Для команды bcp или инструкции BULK INSERT формат данных можно задать в командной строке. Для инструкции INSERT ... SELECT * FROM OPENROWSET(BULK...) нужно указать формат данных в файле форматирования.

Собственный формат Юникода поддерживается следующими параметрами.

Команда Параметр Описание

bcp

-N

Заставляет программу bcp использовать собственный формат Юникода, при котором для всех несимвольных данных используются собственные (базы данных) типы данных, а для всех символьных данных (char, nchar, varchar, nvarchar, text и ntext) используется символьный формат Юникода.

BULK INSERT

DATAFILETYPE ='widenative'

Собственный формат Юникода используется при массовом импорте данных.

Дополнительные сведения см. в разделе Программа bcp, BULK INSERT (Transact-SQL) или OPENROWSET (Transact-SQL).

ms189941.note(ru-ru,SQL.90).gifПримечание.
Также в файле форматирования можно указать форматирование для каждого поля. Дополнительные сведения см. в разделе Файлы форматирования для импорта или экспорта данных.

Примеры

В данных примерах показан массовый экспорт собственных данных с помощью программы bcp и массовый импорт тех же данных с помощью инструкции BULK INSERT.

Образец таблицы

Для использования в примерах необходимо создать таблицу myTestUniNativeData в образце базы данных AdventureWorks под схемой dbo. Перед выполнением примеров создайте эту таблицу. В редакторе запросов среды SQL Server Management Studio выполните:

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

Для заполнения этой таблицы и просмотра полученного содержания таблицы выполните следующие инструкции:

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

Массовый экспорт собственных данных с помощью программы bcp

Для экспорта данных из таблицы в файл данных используйте bcp с параметром out и следующими квалификаторами.

Квалификаторы Описание

-N

Указывает собственные типы данных.

-T

Указывает на то, что программа bcp устанавливает доверенное соединение с SQL Server с помощью встроенной безопасности. Если параметр -T не задан, то для успешного входа необходимо указать параметры -U и -P.

В следующем примере выполняется массовый экспорт данных в собственном формате из таблицы myTestUniNativeData в новый файл данных с именем myTestUniNativeData-N.Dat. В командной строке Microsoft Windows введите:

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

Массовый импорт собственных данных с помощью инструкции BULK INSERT

В следующем примере для импорта данных из файла данных myTestUniNativeData-N.Dat в таблицу myTestUniNativeData используется инструкция BULK INSERT. В редакторе запросов среды SQL Server Management Studio выполните:

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

См. также

Основные понятия

Работа с данными в Юникоде

Другие ресурсы

Программа bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Типы данных (Transact-SQL)
Вопросы международного использования баз данных и приложений компонента Database Engine
ServerBCPDataFileType Property

Справка и поддержка

Получение помощи по SQL Server 2005