• 締切済み

try...catchステートメントについて

お世話になっています。 WindowsXP(SP3)、SQL2005(SP3)、VB6.0(SP6)で開発を行っております。 SQL2005で、トリガーを作成しています。実行時エラー検知のため、TRY...CATCHステートメントを利用して、エラーを検知するように作成していますが、エラーが検知できません(実行時エラー)。 TRY...CATCH構文では、エラーレベル10以下のエラーは補足できませんが、そのエラーを表示させる方法はあるのでしょうか?また、10以下のエラーレベルを任意に変えることはできるのでしょうか? 未熟者ですが、ご教授願います。

みんなの回答

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

#1です。 NOT NULL制約違反の重大度は16ですから、トラップできますよ。 何か他の理由ではないでしょうか?

noname#103492
質問者

お礼

再び回答ありがとうございます。返事が遅くなって、申し訳ありません。 もう一度、考え直してみます。 お手数をかけ、申し訳ありませんでした。

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

重大度10以下のエラーが発生するケースを具体的に示すことはできますか? 結構長いことSQL Server 2005で書いていますが、そのような経験はないので。。 (基本的に10以下は情報メッセージで実行を中断させるようなエラーではないはずですが)

noname#103492
質問者

お礼

回答、ありがとうございます。 具体的なケースについてですが、テーブルに挿入する操作の際、該当の列にnumeric型で入れるのに対し、nullで挿入しようとした場合です(isnull関数は使っていません)。該当の列は、nullを許可していない列になっています。 そのエラーは、重大度が10以下だと考えているのですが(CATCHで補足できないから)、10以下のエラーコードを11以上にして、補足できるようにしたいのです。

関連するQ&A