2011-07-26 13 views
2

私は2つのフィールドを持つテーブルを持っているアドバンテージデータベースサーバ10.トリガーにNOT NULLフィールドを設定する方法は?

を使用しています。今、私はFIELDBを移入するトリガーが必要

FIELDA文字列NOT NULL FIELDB文字列NOT NULL

新しいレコードを挿入するときのFieldAの値。

私の意図は、次のコードで「挿入の前に」または「ではなく、インサートの」トリガーを使用することでした:

UPDATE test set test2 = (SELECT test1 FROM __new); 

をしかし、両方、私はエラーを取得するトリガーとFIELDBはnullにすることはできません。 トリガーを使用して、NULLでない制約のあるフィールドにデータを取り込むことはできますか?

答えて

2

私は恐れることはできません。

の前にNOT NULL制約がチェックされていますすべてのトリガーが実行されます。

制約を持ち上げ、INSERTおよびUPDATEトリガーで値がnullでないことを確認して、必要な動作をシミュレートする必要があります。

フィールドtest2のデフォルト値をダミー値に設定することもできます(テーブルエディタまたはsp_ModifyFieldPropertyを使用して行うことができます)。これを準拠するためのおかげで -

http://devzone.advantagedatabase.com/dz/WebHelp/Advantage10.1/index.html?master_sp_modifyfieldproperty.htm

+0

こんにちはイェンスは、私は制約がトリガー前に検証されていることを考えました。 – gonzales

関連する問題