CSV ファイルからテーブルにレコードをロードするために使用しているパッケージがあります。制御フローには次の 3 つの要素があります。
- テーブルの切り捨て
- ファイルをテーブルにロード
- ロード後にテーブルにレコードがあることを確認するか、エラーを発生させます
アイデアは、パッケージに単一のトランザクションを持たせることです。そのため、要素の読み込みが失敗した場合、またはファイルが空の場合、トランザクションはロールバックされ、テーブルは切り捨てられません。
トランザクションを有効にするには、パッケージのプロパティに移動してTransactionOption=Requiredを設定し、パッケージを実行して、最初の要素 (テーブルを切り捨てようとする SQL タスク) を実行しようとしているときにこのエラーを取得します。
[SQL実行タスク] エラー: 接続「データベース接続」の取得に失敗しました。接続が正しく構成されていないか、この接続に対する適切な権限がない可能性があります。
戻ってパッケージの TransactionOption プロパティをデフォルト (Supported) に変更すると、パッケージは正しく実行されますが、エラーが発生した場合はロールバックされません。
ADO.NET を使用して SQL Server DB に接続しています。
私が間違っていることについて何か考えはありますか?これはトランザクションを使用する正しい方法ですか、それとも何か不足していますか?
ありがとう!