1

SQL Server にトリガーがあり、条件が発生したときにトリガーする必要がありROLLBACKます。問題は、カスタム メッセージを設定する必要があることです。

-- This is inside an UPDATE TRIGGER --
if (condition)
BEGIN
  ROLLBACK 
  RAISERROR 50100 'custom message' 
END

しかし、それは2つのエラーを発生させます

メッセージ 50100、レベル 16、状態 1、プロシージャ tU_COM_Proposta、行 42
カスタム メッセージ
メッセージ 3609、レベル 16、状態 1、行 1
トランザクションはトリガーで終了しました。バッチは中止されました。

カスタムエラーのみを発生させ、同時にトリガーのトランザクションをロールバックする必要があるようにするにはどうすればよいですか?

4

2 に答える 2

0

こんにちは、このように書いてください

RAISERROR ('custom message', 16, 1 )
于 2012-09-25T22:32:42.797 に答える
0

これで問題が解決するかどうかはわかりませんが、トリガー内のステートメントROLLBACK TRANSACTIONの後に (前ではなく)使用したため、挿入が中止されました。トリガーのステートメントで重大度レベルを 1 から 16 に変更すると、トリガーで作成されたカスタム メッセージがトリガーの外側に表示されるようになりました。RAISERROR()INSERTERROR_MESSAGE()RAISERROR()

于 2013-02-27T02:41:53.087 に答える