私は下記のトリガーがあります。SQL Serverの - を挿入するために挿入/後 - ロールバック
CREATE Trigger instructor_expertise on CourseSections
After Insert
As Begin
......
If (Not Exists(Select AreaName From AreasOfInstructor Where (InstructorNo = @InstructorNo AND AreaName = @AreaName)))
Begin
RAISERROR('Course not in instructors expertise', 16, 1)
rollback transaction
End
GO
私の質問は、「ロールバックトランザクションは、」行を削除しますか? 代わりに 'For Insert'の場合、 'rollback transaction'はその場合の行を削除しますか?
ありがとうございました!
ない
@MitchWheat:トランザクションは常に存在する - いいえ?明示的または暗黙的です。そして、ロールバックはそのトランザクションを終了させ、このトランザクションがテーブルに対して何をしようとしていたものを元に戻します。 –
はい、申し訳ありませんマークさん、それは正しいです。私は明示的な取引を意味しました。私は水を混乱させるかもしれないと思う...私は前のコメントを削除します。 –
これらの値はどこから '@ InstructorNo'と' @ AreaName'を取得しますか?基本的には、あなたのトリガで 'ROLLBACK TRANSACTION'を呼び出すと**あなたのINSERTを止めて中断します**全く行が挿入されません –