使用SSIS在同一数据库中创建表的副本

时间:2012-06-07 09:15:27

标签: sql-server ssis

我想使用SSIS包在同一个数据库中创建一个表的副本,例如 TestTable ,使用新名称,例如 TestTableNew 。我已经创建了一个"转移SQL Server对象任务"为此,将源数据库指定为 SourceDatabase DestinationDatabase 。当我运行此任务时,原始表 TestTable 会被新的-empty- TestTable 覆盖。

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

我对SSIS的了解非常有限,但我假设你可以运行sql命令传入 参数,因此生成如下动态

select *
insert into TestTableNew
from TestTable