2016-07-22 6 views
0

SQLを使用してWebサービスを作成しました。メソッドの1つは3つのテーブルに一度に挿入することです。私はエラー処理をしたい。 最初のクエリが正常に実行され、2番目のクエリが実行に失敗した場合。 したがって、実行された最初のクエリはキャンセルされ、3番目のクエリは実行されません。 ロールバックを使用している場合、私はWebサービスを使用していると考えて、他のリクエストに影響を与えるのではないかと恐れています。 ロールバックせずに実行されたSQLクエリを取り消す方法はありますか?ロールバックなしで実行されたSQLクエリを取り消す方法

+0

[トランザクション](https://technet.microsoft.com/en-us/library/ms190612(v = sql.105).aspx)でクエリをラップします。指定したクエリだけをコミットまたはロールバックすることができます。 –

答えて

1

私はあなたの最良の選択肢であることを恐れています。ただし、3つのinsert文をすべてエンベロープするトランザクションを作成し、トランザクションが成功するかどうかを確認することができます。そうでない場合は、トランザクション全体をロールバックすることができます。それがロールバックの全目的です。

webApiコードにSQLExceptionをキャプチャして、以前の挿入文で追加したコンテンツを削除することはできますが、それは悪い考えです。

関連する問題