本部分讨论计划大容量导出操作时的相关注意事项以及大容量导入操作的要求。
在使用
bcp命令执行大容量导出操作之前,请先考虑下列事项:
为了导入数据文件中的数据,该文件必须满足以下基本要求:
thead>
/thead>
数据文件中的数据格式必须是支持的格式,例如字符格式或本机格式。
数据可以是字符格式或本机二进制格式(包括 Unicode)。
若要使用 bcp 命令、BULK INSERT 语句或 INSERT... SELECT * FROM OPENROWSET(BULK...) 语句导入数据,目标表必须已经存在。
数据文件中的每个字段都必须与目标表中的对应列兼容。 例如,不能将 int 字段加载到 datetime 列。 有关详细信息,请参阅用于大容量导入或导出的数据格式 (SQL Server)和在使用 bcp 时指定数据格式以获得兼容性 (SQL Server)。
若要从包含固定长度或固定宽度字段的数据文件导入数据,则必须使用格式化文件。 有关详细信息,请参阅XML 格式化文件 (SQL Server)。
逗号分隔值 (CSV) 文件不受 SQL Server 大容量导入操作支持。 但是,在某些情况下,CSV 文件可在将数据大容量导入 SQL Server 时用作数据文件。 请注意,CSV 文件的字段终止符不一定是逗号。 若要能够用作大容量导入的数据文件,CSV 文件必须满足以下限制条件:
若要从 Microsoft FoxPro、Visual FoxPro 表 (.dbf) 文件或 Microsoft Excel 工作表 (.xls) 文件大容量导入数据,需要将数据转换为 CSV 文件以符合前面的限制条件。 文件扩展名通常将为 .csv。 然后便可以在 SQL Server 大容量导入操作中使用 .csv 文件作为数据文件。
在 32 位系统上,通过使用 OPENROWSET 和 OLE DB Provider for Jet 可以将 CSV 数据导入 SQL Server 表,但是没有大容量导入优化。 通过由位于数据源所在目录的 schema.ini 文件定义的架构,Jet 将文本文件作为表处理。 对于 CSV 数据,schema.ini 文件内的其中一个参数将是“FORMAT=CSVDelimited”。 若要使用此解决方案,您需要了解 Jet Test IISAMm 如何工作,例如它的连接字符串语法、schema.ini 用法、注册表设置选项等等。 此信息的最佳来源是 Microsoft Access 帮助和知识库 (KB) 文章。 有关详细信息,请参阅初始化文本数据源驱动程序、如何通过链接服务器使用 SQL Server 7.0 分布式查询来查询安全的 Access 数据库、如何使用 Jet OLE DB Provider 4.0 连接到 ISAM 数据库以及如何使用 Jet 访问接口的文本 IIsam 打开带分隔符的文本文件。
用户必须对表具有 INSERT 和 SELECT 权限。 如果用户使用要求执行数据定义语言 (DDL) 操作(例如禁用约束)的选项时,他们还要具有 ALTER TABLE 权限。
使用 BULK INSERT 或 INSERT ... SELECT * FROM OPENROWSET(BULK...) 大容量导入数据时,必须可以通过 SQL Server 进程的安全性配置文件(如果用户使用 SQL Server 提供的登录名进行登录)或在委托安全性下使用的 Microsoft Windows 登录名对数据文件进行读取操作。 此外,用户还必须具有 ADMINISTER BULK OPERATIONS 权限以读取文件。
如何将 Excel 数据导入 SQL Server
参考
bcp 实用工具
BULK INSERT (Transact-SQL)
数据类型 (Transact-SQL)
概念
使用字符格式导入或导出数据 (SQL Server)
使用本机格式导入或导出数据 (SQL Server)
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/24352.html