0

ジョブにいくつかのストアド プロシージャがあり、そのうちの 1 つでトランザクションを開始していくつかの行を削除し、行が 10 を超える場合はロールバックします。ただし、2 つのストアド プロシージャの後で似たようなことを行うため、すぐにコミットしたくありません。ただし、このインスタンスで count が 10 より大きい場合は、トランザクションを開始したとき (2 つのストアド プロシージャの前) までロールバックしたい

ストア プロシージャでトランザクションを開始し、複数のロールバックを行い、最後にコミットすることは可能ですか?それを行うには、すべてのコードを 1 つのストア プロシージャに入れる必要がありますか?

4

2 に答える 2

1

これは信じられないほど失敗しやすいようです。

とにかく、コードでトランザクションを開始し、同じ接続を使用して procs を実行する必要があります。すべてのプロシージャが実行されると、コードはコミットまたはロールバックします。

これが であると仮定してc#、回答については次の質問を参照してください:トランザクションで複数の SQL Server ストアド プロシージャを呼び出す

于 2013-09-26T13:54:04.733 に答える