mmseでSQL Server Express 2008を使用しています。 私はテーブル間の外部キー制約を設定し、on delete制約を "set null"に設定しました。 しかし、それは制約を強制するようではなく、私は今削除された行のフィールドにIDが残っています。ここSQL Serverの外部キー "Delete Delete Null"制約が機能しません
は、私はそれが私が間違って行くことができ
を設定しているかの小さなscreen shoトンのですか?
mmseでSQL Server Express 2008を使用しています。 私はテーブル間の外部キー制約を設定し、on delete制約を "set null"に設定しました。 しかし、それは制約を強制するようではなく、私は今削除された行のフィールドにIDが残っています。ここSQL Serverの外部キー "Delete Delete Null"制約が機能しません
は、私はそれが私が間違って行くことができ
を設定しているかの小さなscreen shoトンのですか?
あなたは私のために罰金作品を掲載DDL。
declare @id int;
INSERT INTO DeliveryAreas(Description,Rate) VALUES ('To Delete', 100)
set @id=SCOPE_IDENTITY()
INSERT INTO Customer(FName,DeliveryAreaID) VALUES ('Test',@id)
SELECT ID,FName,DeliveryAreaID FROM Customer
DELETE FROM DeliveryAreas WHERE [email protected]
SELECT ID,FName,DeliveryAreaID FROM Customer
戻り
ID FName DeliveryAreaID
----------- ------------------------------ --------------
1 Test 3
ID FName DeliveryAreaID
----------- ------------------------------ --------------
1 Test NULL
は、あなただけの有効状態をエンドを再確認することはできますか?
SELECT is_disabled,* FROM sys.foreign_keys where name='FK_Customer_DeliveryAreas'
ありがとうございました。それは今完璧に動作するようです。以前は何が問題だったのか分かりません。私は何も変えなかったが、助けてくれてありがとう。 – BastanteCaro
これを設定するだけですか?もしそうならSSMSでセーブを押しましたか?孤立した行を残す場合、FK制約を無効にするか、存在しないようにする必要があります。それ以外の場合は、両方のテーブルに完全なDDLをスクリプト化できますか? –
うん。 VStudioを保存して使用し、スキーマがDesignerに渡されました。それでも動作しません。私はSSMSで削除を行うのか、VStudioを通してプログラム的に行うのか。 – BastanteCaro
両方のテーブル(FK定義を含む)のDDLをスクリプト化して質問に追加できますか? –