Использование собственного формата Юникода для импорта или экспорта данных (SQL Server)
Собственный формат Юникода может быть полезен при копировании данных из одной установки 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
.
Командные параметры для собственного формата Юникода
Вы можете импортировать данные собственного формата Юникода в таблицу с помощью bcp, BULK INSERT или INSERT... SELECT * FROM OPENROWSET(BULK...). Для команды bcp или инструкции BULK INSERT можно указать формат данных в командной строке. Для инструкции INSERT ... SELECT * FROM OPENROWSET(BULK...) нужно указать формат данных в файле форматирования.
Собственный формат Юникода поддерживается следующими параметрами.
Get-Help | Параметр | Описание |
---|---|---|
bcp | -N | Заставляет программу bcp использовать собственный формат Юникода, который использует собственные типы данных (базы данных) для всех несимваторных данных и формат символьных данных Юникода для всех символьных данных (char , , nchar varchar , nvarchar , text и ntext ). |
BULK INSERT | DATAFILETYPE ='widenative' | Собственный формат Юникода используется при массовом импорте данных. |
Дополнительные сведения см. в разделах служебная программа bcp, BULK INSERT (Transact-SQL) или OPENROWSET (Transact-SQL).
Примечание
Также в файле форматирования можно указать форматирование для каждого поля. Дополнительные сведения см. в статье Файлы форматирования для импорта или экспорта данных (SQL Server).
Примеры
В следующих примерах показан массовый экспорт данных в собственном формате с помощью программы 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
В следующем примере с помощью инструкции BULK INSERT выполняется импорт данных из файла данных myTestUniNativeData-N.Dat
в таблицу myTestUniNativeData
. В 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
Связанные задачи
Использование форматов данных для массового импорта или экспорта
Импорт данных в собственном и символьном формате из предыдущих версий SQL Server
Использование символьного формата для импорта или экспорта данных (SQL Server)
Использование собственного формата для импорта или экспорта данных (SQL Server)
Использование символьного формата Юникода для импорта и экспорта данных (SQL Server)
См. также:
Программа bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Типы данных (Transact-SQL)