SQL Server 目标连接到本地 SQL Server 数据库,并将数据批量加载到 SQL Server 表和视图中。 不能在访问远程服务器上的 SQL Server 数据库的包中使用 SQL Server 目标。 相反,包应使用 OLE DB 目标。 有关详细信息,请参阅 OLE DB 目标。
权限
执行包含 SQL Server 目标的包的用户需要“创建全局对象”权限。 可以使用从 “管理工具 ”菜单打开的“本地安全策略”工具向用户授予此权限。 如果在执行使用 SQL Server 目标的包时收到错误消息,请确保运行包的帐户具有“创建全局对象”权限。
批量插入
如果尝试使用 SQL Server 目标将数据大容量加载到远程 SQL Server 数据库中,可能会看到类似于以下内容的错误消息:“OLE DB 记录可用。 源:“Microsoft SQL Server Native Client”Hresult:0x80040E14说明:“无法大容量加载,因为无法打开 SSIS 文件映射对象”Global\DTSQLIMPORT”。 作系统错误代码 2 (系统找不到指定的文件)。 确保通过 Windows 安全性访问本地服务器。“”
SQL Server 目的地提供同样高速地将数据插入到批量插入任务提供的 SQL Server 中,不过,通过使用 SQL Server 目的地,包可以在将数据加载到 SQL Server 之前对列数据进行转换。
若要将数据加载到 SQL Server 中,应考虑使用 SQL Server 目标而不是 OLE DB 目标。
批量插入选项
如果 SQL Server 目标使用快速加载数据访问模式,则可以指定以下快速加载选项:
保留导入数据文件中的标识值,或使用 SQL Server 分配的唯一值。
在大容量加载操作期间保留 null 值。
在批量导入操作期间验证目标表或视图的约束。
在大容量加载操作期间获取表级锁。
在大容量加载作业期间执行在目标表上定义的插入触发器。
指定大容量插入操作中要加载的输入的第一行编号。
指定在批量插入操作期间要加载的输入中最后一行的行号。
指定在取消大容量加载作之前允许的最大错误数。 无法导入的每一行都计为一个错误。
指定包含已排序数据的输入中的列。
有关大容量加载选项的详细信息,请参阅 BULK INSERT (Transact-SQL)。
性能改进
为了提高大容量插入操作的性能以及操作期间访问表数据的效率,应按照以下步骤更改默认选项:
不要在批量导入操作期间验证目标表或视图的约束。
在大容量加载操作期间,不要执行目标表上定义的插入触发器。
不要对表应用锁。 这样,在批量插入作期间,表仍可供其他用户和应用程序使用。
SQL Server 目标的配置
可以通过以下方式配置 SQL Server 目标:
指定要将数据批量加载到的表或视图。
通过指定选项(例如是否检查约束)来自定义大容量加载操作。
指定是将所有行提交在一个批处理中,还是将要提交的最大行数设置为批处理。
指定大容量加载操作的超时设置。
此目标使用 OLE DB 连接管理器连接到数据源,连接管理器指定要使用的 OLE DB 访问接口。 有关详细信息,请参阅 OLE DB Connection Manager。
Integration Services 项目还提供可从中创建 OLE DB 连接管理器的数据源对象。 这使得数据源和数据源视图可用于 SQL Server 目标。
SQL Server 目标有一个输入。 它不支持错误输出。
可以通过 SSIS 设计器或以编程方式来设置属性。
有关可以在 SQL Server 目标编辑器 对话框中设置的属性的详细信息,请单击以下主题之一:
“高级编辑器” 对话框反映了可以通过编程方式进行设置的属性。 有关可以在 “高级编辑器” 对话框中或以编程方式设置的属性的详细信息,请单击下列主题之一:
有关如何设置属性的详细信息,请单击下列主题之一:
相关任务
相关内容
support.microsoft.com 上的技术文章 您可能会在支持 UAC 的系统上看到“无法准备 SSIS 大容量插入以插入数据”错误。
msdn.microsoft.com 上的技术文章 数据加载性能指南。
simple-talk.com 上的技术文章 使用 SQL Server Integration Services 大容量加载数据。