2

我想使用 SSIS 包在同一个数据库中创建一个表的副本,比如TestTable,并使用新名称TestTableNew 。我为此创建了一个“传输 SQL Server 对象任务”,源数据库同时指定为SourceDatabaseDestinationDatabase。当我运行此任务时,原始表TestTable被新的 -empty -TestTable覆盖。

这很可能是我忽略的非常明显的事情,但是我可以在这个传输任务的某个地方为目标表指定另一个名称吗?还是我应该用另一种方式解决这个问题?

4

2 回答 2

3

您不能使用“传输 SQL Server 对象任务”将表复制到同一数据库,因为没有指定新表名称的选项。您会将表“TestTable”复制到表“TestTable”,这将失败,因为它们都具有相同的名称。

您可以将“DropObjectsFirst”属性设置为 true,但这会使您丢失原始表及其数据,我认为您在测试中这样做了,否则您会收到一条失败消息。

这里最好的选择是使用“执行 SQL 任务”根据您的 TestTable 创建 TestTableNew 的结构,然后执行简单的 OleDBSource -> OleDBDestination 转换以将所有数据从一个表加载到另一个表。

于 2012-06-07T09:55:56.447 回答
0

我对 SSIS 的了解非常有限,但我假设您可以运行传递参数的 sql 命令,从而动态生成如下内容

select *
insert into TestTableNew
from TestTable
于 2012-06-07T09:24:06.167 回答