在 SSIS 中传输 SQL Server 表结构

在本文中,我们将向您展示如何使用 SSIS 中的 SQL Server 对象传输任务,在不传输数据的情况下,将 SQL Server 表结构从一个数据库传输到另一个数据库。如果您想传输包含数据的 SQL Server 表,请参阅“传输带数据的表”一文。

使用 SSIS 中的 SQL Server 对象传输任务传输表结构

如果您注意到下面的截图,我们有一个空数据库 (TRANSFERDBTASKS)。在此示例中,我们将使用 SSIS 中的 SQL Server 对象传输任务,将 [Adventure Works DW 2014] 数据库中的几个表(不带数据)传输到 [TRANSFER DB TASKS] 数据库。

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

Transfer SQL Server Table Structures in SSIS 2

双击“SQL Server 对象传输”,这将打开编辑器以进行配置。

“常规”选项卡:在此选项卡中,您可以根据项目需求编写名称和描述。

在这里,我们更改了名称和描述以向您展示它们的功能。单击“对象”选项卡

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

Transfer SQL Server Table Structures in SSIS 4

单击“”(<新建连接…>)后,将打开 SMO 连接管理器编辑器窗口来配置连接。

步骤 3:在此示例中,我们选择本地主机实例并使用 Windows 身份验证。如果您在组织工作,请选择服务器身份验证并提供凭据。

单击“测试连接”按钮以检查连接是否引发错误。

步骤 4:单击 SourceDatabase 选项,然后选择要使用的数据库。目前,我们选择 [Adventure Works DW 2014]。

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

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

Transfer SQL Server Table Structures in SSIS 7

步骤 6:单击 DestinationDatabase 选项,然后选择要使用的数据库。现在我们选择 [TRANSFER DB TASKS],如下图所示。

步骤 7:单击 CopyData 属性,并检查该选项是否为 False。因为在此示例中,我们愿意传输数据库表而不传输数据,从源到目标。

将 CopyData 属性设置为 False,SQL Server 对象传输任务将复制表而不复制数据。

Transfer SQL Server Table Structures in SSIS 9

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

Transfer SQL Server Table Structures in SSIS 10

如果我们将 CopyAllObjects 选项设置为 False,则下一个属性 ObjectsToCopy 将被启用。

步骤 9:单击 ObjectsToCopy 属性进行配置。ObjectsToCopy 属性将探索 SQL Server 对象传输任务的许多选项。让我们专注于属于或与此示例相关的选项。在此示例中,我们的要求是传输表。因此,我们只需要理解前两个选项,即 CopyAllTables 和 TableList。

如果您必须从源数据库复制所有表,请将 CopyAllTables 选项设置为 True。在此示例中,我们将发送几个表。因此,我们将其保留为默认的 False。

Transfer SQL Server Table Structures in SSIS 11

注意:如果您将 CopyAllTables 选项设置为 True,则从 TableList 选项中选择表就没有意义了。

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

SSIS Transfer SQL Server Objects Task Copying Tables only

在本示例中,我们只选择了三个表([Dim Product Category]、[Dim Product Subcategory] 和 [Dim Reseller])。但是您可以尝试选择更多表。

步骤 11:单击“确定”关闭“选择表”窗口,然后单击“确定”完成配置 SQL Server 对象传输任务。

让我们运行 SSIS 包,看看是否成功将表结构(不带数据)从源传输到了目标。

SSIS Transfer SQL Server Objects Task Copying Tables only Package

让我们打开 Management Studio 并检查表。

Copying Tables only Output

从上面的截图,您可以看出我们只是在 SSIS 中传输了 SQL Server 表结构,而没有传输数据。