大容量导入或导出的数据格式 -- 本机格式

大容量导入或导出的数据格式 -- 本机格式


应用场景


当使用不包含任何扩展/双字节字符集 (DBCS) 字符的数据文件在多个 SQL Server 实例之间大容量传输数据时,建议使用本机格式。

本机格式保留数据库的本机数据类型。

本机格式适用于 SQL Server 表之间的高速数据传输。

如果使用格式化文件,则源表和目标表不必相同。

数据传输分为两个步骤:

1. 将源表中的数据大容量导出到数据文件中

2. 将数据文件中的数据大容量导入到目标表中

在相同的表之间使用本机格式避免了在各数据类型与字符格式之间进行不必要的转换,从而节省了时间和空间。

但是,若要获得最佳的传输速率,应执行几个有关数据格式的检查。

为了防止加载的数据出现问题,请参阅以下限制列表。

限制


若要成功导入本机格式的数据,请确保:

1. 数据文件是本机格式的文件。

2. 目标表必须与数据文件(含有正确的列数、数据类型、长度及 NULL 状态等)兼容,或者您必须使用格式化文件将每一个字段映射到其相应列。


注意


如果从与目标表不匹配的文件中导入数据,那么导入操作可能会成功,但插入到目标表中的数据值很可能是错误的。 这是由于文件中的数据是通过使用目标表的格式来解释的。 因此,任何不匹配都会导致插入错误值。 但是,这样的不匹配决不会导致数据库中出现逻辑或物理不一致。

成功的导入操作不会损坏目标表。

bcp 如何处理本机格式的数据


本节论述了 bcp 实用工具如何导出和导入本机格式数据的特殊注意事项。

1. 非字符数据

bcp 实用工具使用 SQL Server 内部二进制数据格式将表中的非字符数据写入数据文件中。

2. char 数据或 varchar 数据

在每个 char 字段或 varchar 字段的开头,bcp 都添加前缀长度。


重要提示


当使用本机模式时,默认情况下,bcp 实用工具先将 SQL Server 中的字符转换为 OEM 字符,然后将这些字符复制到数据文件中。 bcp 实用工具先将数据文件中的字符转换为 ANSI 字符,然后将这些字符大容量导入到 SQL Server 表中。 在执行这些转换过程中,可能丢失扩展字符数据。 对于扩展字符,请使用 Unicode 本机格式或指定代码页。

3. sql_variant 数据

如果 sql_variant 数据以 SQLVARIANT 存储在本机格式数据文件中,则数据会保留其所有特征。 记录每个数据值的数据类型的元数据与数据值一起存储。 此元数据用于在目标 sql_variant 列中重新创建具有相同数据类型的数据值。

如果目标列的数据类型不是 sql_variant,则每个数据值将按照隐式数据转换的一般规则转换为目标列的数据类型。 如果在数据转换过程中出现错误,则回滚当前批。 在 sql_variant 列之间传输的任何 char 值和 varchar 值都可能存在代码页转换问题。

本机格式的命令选项


您可以使用 bcp、BULK INSERT 或 INSERT ... SELECT * FROM OPENROWSET(BULK...) 将本机格式数据导入到表中。 对于 bcp 命令或 BULK INSERT 语句,您可以在命令行中指定数据格式。 对于 INSERT ... SELECT * FROM OPENROWSET(BULK...) 语句,您必须在格式化文件中指定数据格式。

下列命令行选项支持本机格式:


命令


选项


说明


bcp


-n


使 bcp 实用工具使用本机数据类型的数据。1


BULK INSERT


DATAFILETYPE =‘native


使用本机数据类型或宽本机数据类型的数据。 注意,如果格式化文件指定了数据类型,则不需要 DATAFILETYPE。

若要将本机 (-n) 数据加载到与早期版本的 SQL Server 客户端相兼容的格式,请使用 -V 开关。

参考:

https://msdn.microsoft.com/zh-cn/library/ms191232.aspx

时间: 2024-12-25 22:48:45

大容量导入或导出的数据格式 -- 本机格式的相关文章

大容量导入或导出的数据格式 -- Unicode字符格式

大容量导入或导出的数据格式 -- Unicode字符格式 应用场景 使用包含扩展/DBCS 字符的数据文件在多个 SQL Server 实例之间大容量传输数据时,建议使用 Unicode 字符格式. 从服务器导出数据时,Unicode 字符数据格式允许使用与执行该操作的客户端不同的代码页. 在这种情况下,使用 Unicode 字符格式有下列优点: 1. 如果源数据和目标数据的类型为 Unicode,则使用 Unicode 字符格式可以保留所有的字符数据. 2. 如果源数据和目标数据的类型不为 U

大容量导入或导出的数据格式 -- Unicode本机格式

大容量导入或导出的数据格式 -- Unicode本机格式 应用场景 当必须将信息从一个 Microsoft SQL Server 复制到另一个时,Unicode 本机格式将非常有用. 为非字符数据使用本机格式可以节省时间,并消除与字符格式之间不必要的数据类型转换. 在使用不同代码页的服务器之间大容量传输数据时,为所有字符数据使用 Unicode 字符格式可以防止丢失任何扩展字符. 可以通过任何大容量导入方法读取 Unicode 本机格式的数据文件. 通过使用包含扩展字符或 DBCS 字符的数据文

大容量导入和导出的数据格式 -- 字符格式

大容量导入和导出的数据格式 -- 字符格式 应用场景 将数据大容量导出到要在其他程序中使用的文本文件时,或从其他程序生成的文本文件大容量导入数据时,建议使用字符格式. 采用字符格式后,所有列均应用字符数据格式.如果要将数据用于其他程序(如电子表格程序),或需要通过其他数据库供应商(如 Oracle)将数据复制到 SQL Server 实例中,则以字符格式存储信息会非常有用. 注意事项 使用字符格式时,请考虑下列事项: 1. 默认情况下,bcp 实用工具使用制表符分隔字符数据字段,并用换行符终止记

大容量导入和导出数据 -- bcp实用工具

大容量导入和导出数据 -- bcp实用工具 作用 bcp 实用工具可以在SQL Server实例和用户指定格式的数据文件间大容量复制数据. 使用 bcp 实用工具可以将大量新行导入 SQL Server 表,或将表数据导出到数据文件. 除非与 queryout 选项一起使用,否则使用该实用工具不需要了解 Transact-SQL 知识. 若要将数据导入表中,必须使用为该表创建的格式文件,或者必须了解表的结构以及对于该表中的列有效的数据类型. 注意: 如果使用 bcp 备份数据,请创建一个格式化文

大容量导入和导出数据 -- 介绍

大容量导入和导出数据 -- 介绍 SQL Server 支持从 SQL Server 表大容量导出数据以及将大容量数据导入 SQL Server 表或未分区的视图. 大容量导入和大容量导出对在 SQL Server 和异类数据源之间有效传输数据是非常重要的. "大容量导出"是指将数据从 SQL Server 表复制到数据文件. "大容量导入"是指将数据从数据文件加载到 SQL Server 表. 例如,您可以将数据从 Microsoft Excel 应用程序导出到数

大容量导入和导出数据 -- 格式化文件生成

大容量导入和导出数据 -- 格式化文件生成 SQL Server 支持两种类型的格式化文件:非 XML 格式和 XML 格式.非 XML 格式是 SQL Server 早期版本支持的原始格式. 通常,XML 与非 XML 格式化文件可以互换. 但是,建议您为新的格式化文件使用 XML 语法,因为与非 XML 格式化文件相比,格式化文件具有多项优点. 格式化文件基于指定的数据类型选项(-n.-c.-w 或 -N)以及表或视图分隔符. 创建非XML格式化文件 若要使用 bcp 命令创建格式化文件,请

大容量导入和导出 XML 文档的示例

示例表 若要测试示例 A,必须创建示例表 T. USE tempdb CREATE TABLE T (IntCol int, XmlCol xml); GO 示例数据文件 在运行示例 A 之前,必须先创建一个 UTF-8 编码文件 (C:\SampleFolder\SampleData3.txt),该文件应包含指定了 UTF-8 编码方案的以下示例实例. <?xml version="1.0" encoding="UTF-8"?> <Root>

MongoDB的导入与导出

导入与导出可以操作本地的mongodb也可以是远程的mongodb,通用选项: -h host 主机 --port port 端口 -u username 用户名 -p password 密码 如果mongodb没有账户密码并且是从本地导可以忽略上面四个参数 导出: 使用mongodb/bin/mongoexport文件: cd /usr/local/mongodb ./bin/mongoexport -d shop -c order -f name,content -q '{_id:{$lte

导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据

导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据 在 SQL Server 2014 中,您可以通过将 bcp 与 -V 开关一起使用,从 SQL Server 2000.SQL Server 2005.SQL Server 2008.SQL Server 2008 R2 或 SQL Server 2012 中导入本机和字符格式数据. -V 开关将使 SQL Server 2014 使用指定的 SQL Server 早期版本中的数据类型,并且数据文件格式与早期版本中的格式相