传输 SQL Server 对象任务

传输 SQL Server 对象任务在 SQL Server 的实例之间传输 SQL Server 数据库中一种或多种类型的对象。例如,该任务可以复制表和存储过程。可以复制的对象的类型会因用作源的 SQL Server 版本而异。例如,只有 SQL Server 数据库包括架构和用户定义聚合。

传输 SQL Server 对象任务可以配置为传输所有对象,传输某种类型的所有对象,或者只传输某种类型的指定对象。例如,可以选择只复制 AdventureWorks 数据库中的选定表。

如果传输 SQL Server 对象任务传输表,您可以指定随表一起复制与表相关的对象的类型。例如,您可以指定随表一起复制主键。

可以复制指定数据库中的服务器角色、角色和用户以及这些传输的对象的权限。通过随对象一起复制关联的用户、角色以及权限,您可以立即在目标服务器上对这些传输的对象进行操作。

若要进一步增强所传输的对象的功能,您可以将传输 SQL Server 对象任务配置为在传输时包括架构名称、数据、所传输的对象的扩展属性以及依赖对象。在复制数据时,您可以指定是替换现有数据还是追加到现有数据。

在运行时,传输 SQL Server 对象任务使用两个 SMO 连接管理器连接到源服务器和目标服务器。这两个 SMO 连接管理器与传输 SQL Server 对象任务分开配置,然后由传输 SQL Server 对象任务引用。SMO 连接管理器指定服务器以及在访问该服务器时要使用的身份验证模式。有关详细信息,请参阅 SMO 连接管理器

要传输的对象

下表列出了可以复制的对象的类型。版本列用于标识在传输中包括对象类型时任务可以用作源的 SQL Server 版本。

对象

版本

SQL Server 2000 或SQL Server

视图

SQL Server 2000 或SQL Server

存储过程

SQL Server 2000 或SQL Server

用户定义函数

SQL Server 2000 或SQL Server

默认值

SQL Server 2000 或SQL Server

用户定义数据类型

SQL Server 2000 或SQL Server

分区函数

仅 SQL Server

分区方案

仅 SQL Server

架构

仅 SQL Server

程序集

仅 SQL Server

用户定义聚合

仅 SQL Server

用户定义类型

仅 SQL Server

XML 架构集合

仅 SQL Server

在 SQL Server 2000 的实例中创建的用户定义数据类型基于 SQL Server 2000 中的系统数据类型。传输到 SQL Server 时,这些用户定义数据类型使用 SQL Server 的系统数据类型创建,并且保存为使用别名的数据类型。有关 SQL Server 中数据类型的详细信息,请参阅数据类型(数据库引擎)

在 SQL Server 的实例中创建的用户定义类型 (UDT) 对公共语言运行时 (CLR) 程序集具有依赖关系。如果使用传输 SQL Server 对象任务来传输 UDT,则还必须配置用于传输依赖对象的任务。若要传输依赖对象,请将 IncludeDependentObjects 属性设为 True。

表选项

在复制表时,可以指示在复制过程中要包含的与表相关的项的类型。以下类型的项可以与相关表一起复制:

  • 索引

  • 触发器

  • 全文索引

  • 主键

  • 外键

您还可以指示该任务所生成的脚本是否为 Unicode 格式。

目标选项

您可以将传输 SQL Server 对象任务配置为在传输时包括架构名称、数据、所传输的对象的扩展属性以及依赖对象。如果复制数据,则它可以替换或追加到现有数据。

某些选项只适用于 SQL Server。例如,只有 SQL Server 支持架构。

安全选项

传输 SQL Server 对象任务可以包括通过所传输的对象的数据源、SQL Server 登录名和权限所产生的 SQL Server 数据库级用户和角色。例如,传输可以包括所传输的表的权限。

在 SQL Server 实例之间传输对象

传输 SQL Server 对象任务支持的源和目标可以是 SQL Server 2000 或 SQL Server。对于使用哪个版本作为源或目标,没有限制。

事件

该任务将引发报告已传输的对象的信息事件,而且在覆盖对象时还会引发警告事件。信息事件还可以由截断数据库表这样的操作引发。

传输 SQL Server 对象任务并不报告对象传输的进度;它仅报告 0% 和 100 % 完成。

执行值

在任务的 ExecutionValue 属性中存储的执行值返回已传输的对象数。通过将用户定义的变量分配给传输 SQL Server 对象任务的 ExecValueVariable 属性,包中的其他对象就可以访问有关对象传输的信息。有关详细信息,请参阅 Integration Services 变量在包中使用变量

日志项

传输 SQL Server 对象任务包括下列自定义日志项:

  • TransferSqlServerObjectsTaskStartTransferringObjects   此日志项报告传输已经开始。日志项包括开始时间。

  • TransferSqlServerObjectsTaskFinishedTransferringObjects    此日志项报告传输已经完成。日志项包括结束时间。

此外,OnInformation 事件的日志项报告属于为传输所选的对象类型的对象数、已经传输的对象数以及随表传输数据时截断表这样的操作。当覆盖目标上的每个对象时,都会写入 OnWarning 事件的日志项。

安全性和权限

用户必须具有浏览源服务器上的对象的权限,同时必须具有在目标服务器上删除和创建对象的权限,此外用户还必须具有访问指定数据库和数据库对象的权限。

配置传输 SQL Server 对象任务

可以通过 SSIS 设计器或以编程方式来设置属性。

有关可以在 SSIS 设计器中设置的属性的详细信息,请单击下列主题之一:

有关在 SSIS 设计器中如何设置这些属性的详细信息,请单击以下主题:

以编程方式配置传输 SQL Server 对象任务

有关以编程方式设置这些属性的详细信息,请单击以下主题:

Integration Services 图标(小) 使 Integration Services 保持最新

若要从 Microsoft 获得最新的下载内容、文章、示例和视频,以及从社区获得所选解决方案,请访问 MSDN 或 TechNet 上的 Integration Services 页:

若要获得有关这些更新的自动通知,请订阅该页上提供的 RSS 源。