SSIS中有个“传输 SQL Server 对象任务”的组件,可以用来传输数据库中的表,比“数据流任务”要快,因为前者传输的是对象,而后者一般来说都要进行一些转换)。
不过很久之前就在想如何能动态的选择想要传输的表的清单(TableList),今天终于在Roll your own Transfer SQL Server Objects task中找到解决方法了(07年的,汗)。
注意博主Matt Masson在回帖中的代码:
Database sourceDB = new Database("source");
Transfer xfer = new Transfer(sourceDB);
xfer.CopyAllTables = false;
[...]
xfer.ObjectList.Add( sourceDB.Tables["table1"] );
xfer.ObjectList.Add( sourceDB.Tables["table2", "schema1"] );
xfer.ObjectList.Add( sourceDB.Tables["table2", "schema2"] );
xfer.ObjectList.Add( sourceDB.Tables["table3"] );