- ' provider_name '
-
字符串,表示在注册表中指定的 OLE DB 访问接口的友好名称(或 PROGID)。provider_name 没有默认值。
- ' datasource '
-
对应于特定 OLE DB 数据源的字符串常量。datasource 是要传递给访问接口的 IDBProperties 接口的 DBPROP_INIT_DATASOURCE 属性,该属性用于初始化访问接口。通常,此字符串包含数据库文件的名称、数据库服务器的名称,或者访问接口能理解的用于定位数据库的名称。
- ' user_id '
-
字符串常量,它是传递给指定 OLE DB 访问接口的用户名。user_id 为连接指定安全上下文,并作为 DBPROP_AUTH_USERID 属性传入以初始化访问接口。user_id 不能是 Microsoft Windows 登录名。
- ' password '
-
字符串常量,它是传递给 OLE DB 访问接口的用户密码。在初始化访问接口时,password 作为 DBPROP_AUTH_PASSWORD 属性传入。password 不能是 Microsoft Windows 密码。
- ' provider_string '
-
访问接口特定的连接字符串,作为 DBPROP_INIT_PROVIDERSTRING 属性传入以初始化 OLE DB 访问接口。通常 provider_string 封装初始化访问接口所需的所有连接信息。有关 SQL Server Native Client OLE DB 访问接口可识别的关键字列表,请参阅初始化和授权属性。
- catalog
-
指定对象所在的目录或数据库的名称。
- schema
-
架构的名称或指定对象的对象所有者名称。
- object
-
对象名,它唯一地标识出将要操作的对象。
- ' query '
-
字 符串常量,发送到访问接口并由访问接口执行。SQL Server 的本地实例不处理该查询,但处理由访问接口返回的查询结果(传递查询)。有些访问接口并不通过表名而是通过命令语言提供其表格格式数据,将传递查询用于这 些访问接口是非常有用的。只要查询访问接口支持 OLE DB Command 对象及其强制接口,那么在远程服务器上就支持传递查询。有关详细信息,请参阅 SQL Server Native Client (OLE DB) 参考。
- BULK
-
使用 OPENROWSET 的 BULK 行集访问接口读取文件中的数据。在 SQL Server 中,OPENROWSET 无需将数据文件中的数据加载到目标表,便可读取这些数据。这样便可在单个 SELECT 语句中使用 OPENROWSET。
BULK 选项的参数可对何时开始和结束数据读取、如何处理错误以及如何解释数据提供有效控制。例如,可以指定以类型为 varbinary、varchar 或 nvarchar 的单行单列行集的形式读取数据文件。默认行为详见随后的参数说明。
有关如何使用 BULK 选项的信息,请参阅本主题后面部分的“备注”。有关 BULK 选项所需权限的信息,请参阅本主题后面的“权限”。
注意:
当用于以完整恢复模式导入数据时,OPENROWSET (BULK ...) 不优化日志记录。 有关为大容量导入准备数据的信息,请参阅准备用于大容量导出或大容量导入的数据。
- ' data_file '
-
数据文件的完整路径,该文件的数据将被复制到目标表中。
- FORMATFILE = 'format_file_path'
-
指定格式化文件的完整路径。SQL Server 支持两种格式化文件类型:XML 和非 XML。
格式化文件对定义结果集中的列类型是必需的。唯一的例外情况是指定 SINGLE_CLOB、SINGLE_BLOB 或 SINGLE_NCLOB 时;在这种情况下,不需要格式化文件。
有关格式化文件的信息,请参阅使用格式化文件大容量导入数据。
- < bulk_options>
-
指定 BULK 选项的一个或多个参数。
- CODEPAGE = { 'ACP '| 'OEM '| 'RAW '| 'code_page' }
-
指定该数据文件中数据的代码页。仅当数据含有字符值大于 127 或小于 32 的 char、varchar 或 text 列时,CODEPAGE 才是适用的。
注意:
建议在格式化文件中为每个列指定一个排序规则名称。 CODEPAGE 值 说明 ACP
将数据类型为 char、varchar 或 text 的列由 ANSI/Microsoft Windows 代码页 (ISO 1252) 转换为 SQL Server 代码页。
OEM(默认值)
将数据类型为 char、varchar 或 text 的列由系统 OEM 代码页转换为 SQL Server 代码页。
RAW
不执行从一个代码页到另一个代码页的转换。这是执行最快的选项。
code_page
指示数据文件中字符数据已编码的源代码页,例如 850。
重要提示:
SQL Server 不支持代码页 65001(UTF-8 编码)。
- ERRORFILE = 'file_name'
-
指定用于收集格式有误且不能转换为 OLE DB 行集的行的文件。这些行将按原样从数据文件复制到此错误文件中。
错误文件在开始执行命令时创建。如果该文件已存在,将引发一个错误。此外,还创建了一个扩展名为 .ERROR.txt 的控制文件。此文件引用错误文件中的每一行并提供错误诊断。纠正错误后即可加载数据。
- FIRSTROW = first_row
-
指定要加载的第一行的行号。默认值为 1。这表示指定数据文件中的第一行。通过对行终止符进行计数来确定行号。FIRSTROW 从 1 开始。
- LASTROW = last_row
-
指定要加载的最后一行的行号。默认值为 0。这表示指定数据文件中的最后一行。
- MAXERRORS = maximum_errors
-
指定格式化文件中定义的、在 OPENROWSET 引发异常之前可以发生的语法错误或格式有误行的最大数目。在达到 MAXERRORS 之前,OPENROWSET 会忽略每个错误行,不加载它,并将其计为一个错误。
maximum_errors 的默认值为 10。
注意:
MAX_ERRORS 不适用于 CHECK 约束,也不适用于 money 和 bigint 数据类型的转换。
- ROWS_PER_BATCH = rows_per_batch
-
指定数据文件中近似的数据行数量。该值应与实际行数相同。
OPENROWSET 始终以单批形式导入数据文件。但如果将 rows_per_batch 的值指定为 > 0,则查询处理器在查询计划中分配资源时将使用 rows_per_batch 的值作为提示。
默认情况下,ROWS_PER_BATCH 未知。指定 ROWS_PER_BATCH = 0 相当于忽略 ROWS_PER_BATCH。
- ORDER ( { column [ ASC | DESC ] } [ ,...n ] [ UNIQUE ] )
-
一个用于指定数据文件中数据的排序方式的可选提示。默认情况下,大容量操作假定数据文件未排序。如果查询优化器能够利用指定顺序来生成更有效的查询计划,则性能可能会得到改善。指定一个排序可以取得益处的示例包括:
- 将行插入到具有聚集索引的表,其中行集数据按聚集索引键进行排序。
- 将行集与另一个表联接,其中排序列和联接列匹配。
- 通过排序列聚合行集数据。
- 将行集用作查询的 FROM 子句中的源表,其中排序列和联接列匹配。
UNIQUE 指定数据文件不能有重复条目。
如果数据文件中的实际行没有根据指定的顺序进行排序,或者如果指定了 UNIQUE 提示并且存在重复键,则返回错误。
使用 ORDER 时列别名是必需的。列别名列表必须引用由 BULK 子句正在访问的派生表。在 ORDER 子句中指定的列名将引用此列别名列表。不能指定大值类型(varchar(max)、nvarchar(max)、varbinary(max) 和 xml)和大型对象 (LOB) 类型(text、ntext 和 image)列。
- 将行插入到具有聚集索引的表,其中行集数据按聚集索引键进行排序。
- SINGLE_BLOB
-
将 data_file 的内容作为类型为 varbinary(max) 的单行单列行集返回。
重要提示:
我们建议您仅使用 SINGLE_BLOB 选项(而不是 SINGLE_CLOB 和 SINGLE_NCLOB)导入 XML 数据,因为只有 SINGLE_BLOB 支持所有的 Windows 编码转换。
- SINGLE_CLOB
-
通过以 ASCII 格式读取 data_file,使用当前数据库的排序规则将内容作为类型为 varchar(max) 的单行单列行集返回。
- SINGLE_NCLOB
-
通过以 UNICODE 格式读取 data_file,使用当前数据库的排序规则将内容作为类型为 nvarchar(max) 的单行单列行集返回。