本文将通过一个示例展示如何传输存储过程。为此,我们将创建一个SSIS包,使用“传输SQL Server对象”任务将存储过程从一个数据库传输到另一个数据库。
请参考传输服务器对象任务以了解每个SQL Server Integration Services属性的功能。
在SSIS中使用传输SQL Server对象任务传输存储过程
如果您观察下面的屏幕截图,有一个名为[Duplicate AdventureWorks2014]的数据库。我们已经在《带有数据的表》文章中传输了表。
使用SSIS传输SQL Server对象任务,我们将把存储过程从[AdventureWorks2014]传输到[Duplicate AdventureWorks2014]。
如果您想传输用户定义函数,请参考用户定义函数文章。

步骤 1:打开 BIDS,然后将 SQL Server 对象传输任务从工具箱拖放到控制流中。

双击“传输对象任务”将打开编辑器进行配置。
常规选项卡
在此选项卡中,输入名称和描述。

步骤2:选择SourceConnection属性,然后单击它以创建新连接。如果您已创建,请选择它。

单击“<新建连接…>”后,将打开SMO连接管理器编辑器窗口来配置连接。
步骤3:在此示例中,我们选择本地主机实例并使用Windows身份验证。如果您在组织工作,请选择SQL Server身份验证并输入凭据。

单击“测试连接”按钮以检查连接是否引发错误。
步骤4:单击SourceDatabase选项并选择数据库。在SSIS演示中传输SQL Server存储过程时,我们选择了[Adventureworks2014]。

步骤5:选择DestinationConnection属性,然后单击它以创建新连接。如果您已创建,请选择它。
我们已经在SourceConnection中提到了本地主机实例,这里也使用相同的实例。如果您想创建一个新的,单击它将打开SMO连接管理器编辑器窗口来配置连接。

步骤6:单击DestinationDatabase选项并选择要使用的数据库。在SSIS示例中传输SQL Server存储过程时,我们选择了[Duplicate AdventureWorks2014]。

步骤7:如果您需要将所有对象(视图、函数、存储过程、表)从源数据库复制,则将CopyAllObjects选项设置为True。在此示例中,我们只发送存储过程。因此,我们将其保留为默认的False。

如果我们将CopyAllObjects选项设置为False,则下面的ObjectsToCopy属性将被启用。
步骤8:单击ObjectsToCopy属性进行配置。ObjectsToCopy属性将探索“传输SQL Server对象任务”的许多选项。让我们专注于与此示例相关的选项。在此SSIS对象任务示例中,我们需要传输SQL Server存储过程。因此,我们需要了解CopyAllStoredProcedures和StoredProceduresList等选项。
如果您需要将所有存储过程从源数据库复制,请将CopyAllStoredProcedures选项设置为True。但是,我们正在发送所有存储过程。为了向您展示,我将其保留为默认的False,稍后我们将在StoredProceduresList中选择它们。

步骤9:单击StoredProceduresList选项,然后单击“集合”。单击“集合”旁边的 (…) 按钮后,将打开“选择存储过程”窗口,以从源连接中选择可用的存储过程。

在此示例中,我们选择了所有存储过程,但您可以尝试不同的选项。
步骤10:单击“确定”关闭“选择存储过程”窗口,然后单击“确定”完成“传输SQL Server对象任务”的配置。
让我们运行该包,看看是否成功将它们从源传输到了目标。

让我们打开Management Studio并检查存储过程。

从上面的屏幕截图可以看出,我们已成功传输了存储过程。