Date: Fri, 23 Feb 2001 19:32:58 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です
-----Original Message-----
From: Kenji Okimoto [mailto:who@example.co.jp]
Sent: Friday, February 23, 2001 3:30 PM
To: who@example.ne.jp
Subject: [ml-msde:00466] Re: トリガー内のエラー処理が実行されません
>整合性違反が起きた場合、次の文は処理されないという事ですか。
整合性違反は、継続実行可能なエラーです
整合性違反と、テーブルが存在しない(オブジェクトが存在しない)エラー
は違います
テーブルが存在しないでINSERT命令が実行された場合は、整合性
以前のことで、致命的なエラーです
>上巻462ページを見ると、INSERT文の後にIF文の@@ERRORで判定
>していますので、整合性違反が起きた場合でも、このIF文は実行さ
>れますよね。(私は実行されないのですが。)
>私の現象は、INSERT時にオブジェクトがない。または挿入した値が
>精度を超えているエラーが発生した場合、次のIF文が実行されませ
>ん。
『INSERT時にオブジェクトがない』とは、挿入先のテーブルが存在
しなかったという意味ですね
ですから、致命的なエラーになります。
精度がおかしいなどは、軽微のエラー(整合性違反)になると思います
この場合は継続実行が可能です
但し、
[ml-msde:00440] トリガー内のエラー処理が実行されません
このメールの中で与えられたプログラムを見ると、SAVEPOINTを
使っていますね
何だか、トランザクションの使い方の問題のような気もしますね
トリガ内でROLLBACK命令を実行するとそのバッチが強制終了
しますがこの場合は、セーブポイント名が付いているのでどうなる
でしょうか?
---------------------------------------------------
(株)日本技術ソフト開発 堀川 明
mailto:who@example.ne.jp
mailto:who@sub.example.jp
http://www.horikawa.ne.jp/msde/
http://www.kt.rim.or.jp/~pwp/
02月23日(金曜日) 19時32分記
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|