2

SSISパッケージを使用して、同じデータベースに新しい名前(TestTableNewなど)のテーブル( TestTableなど)のコピーを作成したいと思います。SourceDatabaseDestinationDatabaseの両方として指定されたソースデータベースを使用して、このための「SQLServerオブジェクトの転送タスク」を作成しました。このタスクを実行すると、元のテーブル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 に答える