(SQL 2005) raiserrorがストアドプロシージャを終了することは可能ですか?RAISERRORを使用したSQL文の終了
たとえば、大規模なシステムでは、特定の列に入力されないと予想される値があります。更新トリガでは、書いた場合:存在
場合 RAISEERROR(マイカスタムエラー '、16、1) 終了
を開始し、更新情報がまだある(ここで、testcol = 7挿入SELECT * FROM)適用される。存在する場合は を開始(testcol = 7がどこに挿入SELECT * FROM)
を実行する場合 しかし1/0 エンド
を選択0除算エラーは、実際には更新を終了するようにスローされます。 私はraiseerrorでこれを行うことができますので、カスタムエラーメッセージを返すことができますか?
また、このリンクhttp://support.microsoft.com/kb/45581 – pjp
これはトランザクションでのみ有効ですか?またはtrasactionalトリガされていますか? – Bob
明示的なトランザクション内にない各SQL文が事実上1つの文のトランザクションであるため、トリガ内では、一致するBEGIN TRANSACTION文は必要ありません。 – pjp