大容量导入或导出的数据格式 -- Unicode字符格式
应用场景
使用包含扩展/DBCS 字符的数据文件在多个 SQL Server 实例之间大容量传输数据时,建议使用 Unicode 字符格式。
从服务器导出数据时,Unicode 字符数据格式允许使用与执行该操作的客户端不同的代码页。
在这种情况下,使用 Unicode 字符格式有下列优点:
1. 如果源数据和目标数据的类型为 Unicode,则使用 Unicode 字符格式可以保留所有的字符数据。
2. 如果源数据和目标数据的类型不为 Unicode,则使用 Unicode 字符格式可以尽可能减少丢失源数据中无法在目标数据中表示的扩展字符。
Unicode 字符格式数据文件遵循 Unicode 文件的约定。该文件的前两个字节为十六进制数字 0xFFFE。 这两个字节用作字节顺序标记,指定在文件中高位字节是存储在前面还是后面。
重要提示 |
对于用于 Unicode 字符数据文件的格式化文件,所有输入字段必须为 Unicode 文本字符串(即固定大小 Unicode 字符串或字符终止 Unicode 字符串)。 |
Unicode 字符格式数据文件中存储的 sql_variant 数据的操作方式与字符格式数据文件中的同类数据的操作方式相同,唯一的不同是该数据存储为 nchar 而不是 char 数据。
Unicode 字符格式的命令选项
您可以使用 bcp、BULK INSERT 或 INSERT ... SELECT * FROM OPENROWSET(BULK...) 将字符格式数据导入到表中。 对于 bcp 命令或 BULK INSERT 语句,您可以在命令行中指定数据格式。 对于 INSERT ... SELECT * FROM OPENROWSET(BULK...) 语句,您必须在格式化文件中指定数据格式。
下列命令行选项支持 Unicode 字符格式:
命令 | 选项 | 说明 |
bcp | -w | 使用 Unicode 字符格式。 |
BULK INSERT | DATAFILETYPE =‘widechar‘ | 大容量导入数据时使用 Unicode 字符格式。 |
参考:
https://msdn.microsoft.com/zh-cn/library/ms188289.aspx
本文出自 “SQL Server Deep Dives” 博客,请务必保留此出处http://ultrasql.blog.51cto.com/9591438/1628101
原文地址:http://ultrasql.blog.51cto.com/9591438/1628101