SSIS 中的传输 SQL Server 对象任务

SSIS 中的传输 SQL Server 对象任务用于将一个或多个 SQL Server 对象(例如表、视图、存储过程、用户定义函数、索引、用户、登录名等)从一个数据库传输到另一个数据库。Integration Services 中的传输 SQL Server 对象任务允许我们使用相同的实例作为源和目标连接,或者使用不同的实例。

SSIS 中传输 SQL Server 对象任务的一些关键功能是

  • 传输 SQL Server 对象任务允许您选择一种对象类型或所有服务器对象。表、视图、存储过程、用户定义函数等是一些对象。
  • SSIS 中的传输 SQL Server 对象任务允许您选择所有表,或者传输所有表。有关如何将表从源传输到目标的更多信息,请参阅传输带数据的表文章。
  • SSIS 中的传输 SQL Server 对象任务允许您传输表结构,即不带数据的表。有关如何将表结构从源传输到目标的更多信息,请参阅传输表结构文章。
  • SSIS 中的传输 SQL Server 对象任务允许您选择所有存储过程。或者,它会将所有存储过程传输到源数据库。有关如何将用户定义存储过程从源传输到目标的更多信息,请参阅传输存储过程文章。
  • SSIS 中的传输 SQL Server 对象任务允许您选择所有用户定义函数。或者,它会将源数据库中的所有用户定义函数传输出去。有关如何将用户定义函数从源传输到目标的更多信息,请参阅传输用户定义函数文章。
  • 传输 SQL Server 对象任务允许您选择所有视图或传输所有视图。有关如何将视图从源传输到目标的更多信息,请参阅传输视图文章。

配置 SSIS 中的传输 SQL Server 对象任务

将“传输 SQL Server 对象”任务从工具箱拖到“控制流”区域。双击该任务将打开“传输对象任务编辑器”,如下所示,用于配置它。

Transfer SQL Server Objects Task in SSIS 1

常规选项卡

此选项卡专门用于更改 SSIS 传输 SQL Server 对象任务的名称并提供描述。在实际应用中,请将任务名称更改为适当的名称,并编写描述以解释任务功能。这有助于其他开发人员更好地理解任务。

例如,如果您要传输表,请这样写

  • 名称:传输表
  • 描述:将“Employees”和“Sales”表(包含数据)从“[Adventure Works 2014]”传输到数据库。
General Tab 2

对象选项卡

在此选项卡中,我们将执行 SSIS 中的所有传输 SQL Server 对象任务操作。让我们分段进行探讨。

Transfer SQL Server Objects Task in SSIS 3

连接

  • SourceConnection:配置源数据库的连接管理器设置。如果您已创建连接管理器,请从列表中选择,或单击“新建连接...”以创建新的连接。
  • SourceDatabase:这是您要从中复制对象(如表、视图和函数)的数据库名称。
  • DestinationConnection:配置目标数据库的连接管理器设置。如果您已创建,请从列表中选择。否则,单击“新建连接...”以创建新的连接。
  • DestinationDatabase:在目标连接上选择要将选定对象复制到的数据库名称。

注意:SSIS 中的传输 SQL Server 对象任务仅支持 SMO 连接管理器。因此,对于源和目标,请创建 SMO 连接管理器。

目标

  • DropObjectsFirst:在复制对象之前,指定您是否要在目标数据库中删除选定的对象。
  • IncludeExtendedProperties:指定在复制数据时是否要包含对象的扩展属性。
  • CopyData:复制表时,是否要同时传输所选表的数据?如果是,则选择 TRUE。如果选择 FALSE,将传输带有列名的空表。
  • ExistingData:将数据复制到目标表时,您可以选择追加或替换数据。如果您选择“追加”选项,则新数据将添加到旧数据中。否则,新数据将替换旧数据。
  • CopySchema:将对象的架构从源复制到目标。
  • UseCollation:每个数据库都有自己的排序规则设置。将此选项设置为 TRUE,SSIS 传输 SQL Server 对象任务将在目标数据库中使用源数据库的排序规则设置。
  • IncludeDependentObjects:如果存在任何依赖对象,通过设置此选项,它还将复制这些依赖对象。

目标复制对象

  • CopyAllObjects:您想将源数据库的所有对象复制到目标数据库吗?如果将其设置为 TRUE,所有对象都将一次性传输。如果设置为 FALSE,下一个属性 ObjectsToCopy 将被启用。
  • ObjectsToCopy:通过展开此属性,您可以选择源数据库中的单个对象。这些对象类型可能因版本而异。下面的屏幕截图将显示它们。
Transfer SQL Server Objects Task in SSIS 4

在此,我们将向您解释 SSIS 中的传输 SQL Server 对象任务可用的服务器对象。

  • CopyAllTables:如果您想将源数据库中的所有表传输到目标数据库,请将此选项设置为 TRUE。如果您想移动一个或几个表,请设置为 FALSE,然后从 TablesList 中选择所需的表。
  • TablesList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有表。您的任务是从列表中选择所需的表。这些选定的表将被传输到目标数据库。
  • CopyAllViews:如果您想将源数据库中的所有视图传输到目标数据库,请将此选项设置为 TRUE。如果您想传输一个或几个视图,请设置为 FALSE,然后从 ViewsList 中选择所需的视图。
  • ViewsList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有视图。在这里,您的任务是从列表中选择所需的视图。这些选定的视图将被传输到目标数据库。
  • CopyAllStoredProcedures:如果您想将源数据库中的所有用户定义存储过程传输到目标数据库,请将此选项设置为 TRUE。要传输一个或几个存储过程,请设置为 FALSE,然后从 StoredProceduresList 中选择所需的用户定义存储过程。
  • StoredProceduresList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中的所有用户定义存储过程,您的任务是从列表中选择所需的存储过程。这些选定的用户定义存储过程将被传输到目标数据库。
  • CopyAllUserDefinedFunctions:如果您想将源数据库中的所有用户定义函数传输到目标数据库,请将此选项设置为 TRUE。要传输一个或几个用户定义函数,请设置为 FALSE,然后从 UserDefinedFunctionsList 中选择所需的用户定义函数。
  • UserDefinedFunctionsList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有用户定义函数,您的任务是从列表中选择所需的用户定义函数。这些用户定义函数将被移动到目标数据库。
  • CopyAllDefaults:如果您想将源数据库中的所有默认值传输到目标数据库,请将此选项设置为 TRUE。要移动一个或几个默认值,请设置为 FALSE,然后从 DefaultsList 中选择所需的默认值。
  • DefaultsList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有默认值,您的任务是从列表中选择所需的默认值。这些选定的默认值将被移动到目标数据库。
  • CopyAllUserDefinedDataTypes:如果您想将源数据库中的所有用户定义数据类型传输到目标数据库,请将此选项设置为 TRUE。如果您要移动一个或几个数据类型,请设置为 FALSE,然后从 UserDefinedDataTypesList 中选择所需的用户定义数据类型。
  • UserDefinedDataTypesList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有用户定义数据类型,您的任务是从列表中选择所需的用户定义数据类型。这些选定的数据类型将被传输到目标数据库。
  • CopyAllPartitionFunctions:如果您想将源数据库中的所有分区函数传输到目标数据库,请将此选项设置为 TRUE。要移动一个或几个分区函数,请设置为 FALSE,然后从 PartitionFunctionsList 中选择所需的分区函数。
  • PartitionFunctionsList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有分区函数。您的任务是从列表中选择所需的分区。这些选定的分区将被传输。
  • CopyAllPartitionSchemes:如果您想将源数据库中的所有分区方案传输到目标数据库,请将此选项设置为 TRUE。要移动一个或几个分区方案,请设置为 FALSE,然后从 PartitionSchemesList 中选择所需的分区方案。
  • PartitionSchemesList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有分区方案,您的任务是从列表中选择所需的分区。这些选定的分区将被传输到目标数据库。
  • CopyAllSchemas:如果您想将源数据库中的所有数据库架构传输到目标数据库,请将此选项设置为 TRUE。要传输一个或几个架构,请设置为 FALSE,然后从 SchemasList 中选择所需的架构。
  • SchemasList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有架构。在这里,您的任务是从列表中选择所需的架构。这些选定的架构将被传输到目标数据库。
  • CopyAllSqlAssemblies:如果您想将源数据库中的所有程序集传输到目标数据库,请将此选项设置为 TRUE。要传输一个或几个程序集,请设置为 FALSE,然后从中选择所需的程序集。
  • SqlAssembliesList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有程序集,您的任务是从列表中选择所需的程序集。这些选定的程序集将被传输到目标数据库。
  • CopyAllUserDefinedAggregates:如果您想将源数据库中的所有用户定义聚合函数传输到目标数据库,请将此选项设置为 TRUE。如果您要移动一个或几个聚合函数,请设置为 FALSE,然后从 UserDefinedAggregatesList 中选择所需的聚合函数。
  • UserDefinedAggregatesList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有用户定义聚合函数。您的任务是从列表中选择所需的聚合函数。这些选定的聚合函数将被移动到目标数据库。
  • CopyAllUserDefinedTypes:如果您想将源数据库中的所有用户定义类型传输到目标数据库,请将此选项设置为 TRUE。要移动一个或几个类型,请设置为 FALSE,然后从 UserDefinedTypesList 中选择所需的类型。
  • UserDefinedTypesList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有用户定义类型。在这里,您的任务是从列表中选择所需的类型。这些选定的类型将被传输到目标数据库。
  • CopyAllXmlSchemaCollections:如果您想将源数据库中的所有 XML 架构集合传输到目标数据库,请将此选项设置为 TRUE。要移动一个或几个 XML 架构,请设置为 FALSE,然后从 XmlSchemaCollectionsList 中选择所需的 XML 架构。
  • XmlSchemaCollectionsList:在此选项旁边,有一个“...”按钮。单击该按钮将显示源数据库中存在的所有 XML 架构集合。您的任务是从列表中选择所需的 XML 架构。这些选定的 XML 架构将被移动到目标数据库。

安全性

  • CopyDatabaseUsers:通过在 True 和 False 之间切换,指定您是否要将数据库用户从源数据库传输到目标数据库。
  • CopyDatabaseRoles:指定您是否要将角色从源传输到目标数据库。
  • CopySQLServerLogins:指定您是否要将登录名从源传输到目标数据库。
  • CopyObjectLevelPermissions:指定您是否要将对象级权限从源传输到目标数据库。

表选项

  • CopyIndexes:通过在 True 和 False 之间切换,指定您是否要将表索引从源复制到目标数据库。
  • CopyTriggers:指定您是否要将表上的触发器从源复制到目标数据库。
  • CopyFullTextIndexes:指定您是否要将全文索引从源复制到目标数据库。
  • CopyAllDRIObjects:指定您是否要将表上的参照完整性从源复制到目标数据库。
  • CopyPrimaryKeys:指定您是否要将表上的主键从源复制到目标数据库。
  • CopyForeignKeys:您是否要将表上的外键从源复制到目标数据库,是否包含外键。
  • GenerateScriptsInUnicode:指定您是否要以 Unicode 格式生成脚本。

注意:执行包含 SSIS 中传输 SQL Server 对象任务的包的用户必须具有删除和创建对象的权限。