SSISを使用して、後で新しいシステムで使用するために新しいデータを生成し、変換します。 SSISパッケージを実行するたびに問題が発生し、新しいレコードをターゲットテーブルに挿入し続けます。SSISに新しいレコードを挿入する前に宛先テーブルを空にするには?
先に宛先テーブル(/ OLE DB宛先)を空にしてから新しく生成されたレコードを挿入するにはどうすればよいですか?
現在、この問題の回避策は、パッケージを実行する前にdelete from DestTable
を実行しています。
SSISを使用して、後で新しいシステムで使用するために新しいデータを生成し、変換します。 SSISパッケージを実行するたびに問題が発生し、新しいレコードをターゲットテーブルに挿入し続けます。SSISに新しいレコードを挿入する前に宛先テーブルを空にするには?
先に宛先テーブル(/ OLE DB宛先)を空にしてから新しく生成されたレコードを挿入するにはどうすればよいですか?
現在、この問題の回避策は、パッケージを実行する前にdelete from DestTable
を実行しています。
を空にするこの
truncate table table_name
を使用する必要があります。次に、それをフローの最初のコンポーネントにします。コンポーネントは、このようなものになります。
'TRUNCATE TABLE
あなたは、これがExecute SQL Task
であなたのdelete文を入れてテーブル
は、SQL実行タスクを作成します。最初に走ってください。 sqlstatmentの場合は。
Truncate table DestTable
truncateテーブルを使用すると、すべてのインデックスが無視され、すべてが削除されるので、deleteを使用するほうがよくなります。
少し背景情報のために。私は、delete tableの代わりにtruncate tableを使用すべき理由を説明しようとします。テーブルの削除は行ベースの操作です。つまり、各行が削除されます。 Truncate tableは、データページ全体のデータページが削除されるデータページ操作です。 100万行のテーブルがある場合は、テーブルを切り捨てるほうがはるかに高速になります。テーブルの削除が必要になります。
Truncateテーブルを使用することについての注意点は、前述の理由によりうまく動作します。ただし、SSISシステムアカウントの追加権限も必要です。 プロダクションで利用できることを確認する必要があります。そうしないと、削除を使用する必要があります。
「Execute SQL Task」にあなたのdelete文を入れてください。次に、それをフローの最初のコンポーネントにします。 – TsSkTo
それは解決策かもしれません、あなたは答えとしてそれを与えることができます。 – SamekaTV