3

CSV ファイルからテーブルにレコードをロードするために使用しているパッケージがあります。制御フローには次の 3 つの要素があります。

  • テーブルの切り捨て
  • ファイルをテーブルにロード
  • ロード後にテーブルにレコードがあることを確認するか、エラーを発生させます

アイデアは、パッケージに単一のトランザクションを持たせることです。そのため、要素の読み込みが失敗した場合、またはファイルが空の場合、トランザクションはロールバックされ、テーブルは切り捨てられません。

トランザクションを有効にするには、パッケージのプロパティに移動してTransactionOption=Requiredを設定し、パッケージを実行して、最初の要素 (テーブルを切り捨てようとする SQL タスク) を実行しようとしているときにこのエラーを取得します。

[SQL実行タスク] エラー: 接続「データベース接続」の取得に失敗しました。接続が正しく構成されていないか、この接続に対する適切な権限がない可能性があります。

戻ってパッケージの TransactionOption プロパティをデフォルト (Supported) に変更すると、パッケージは正しく実行されますが、エラーが発生した場合はロールバックされません。

ADO.NET を使用して SQL Server DB に接続しています。

私が間違っていることについて何か考えはありますか?これはトランザクションを使用する正しい方法ですか、それとも何か不足していますか?

ありがとう!

4

1 に答える 1