私はmmseでSQLServerExpress2008を使用しています。テーブル間に外部キー制約を設定し、ondelete制約を「setnull」に設定しました。ただし、制約が適用されていないようで、削除された行のフィールドにIDが残っています。
これが私がそれをどのように設定したかを示す小さな画面です
どこが間違っているのでしょうか?
私はmmseでSQLServerExpress2008を使用しています。テーブル間に外部キー制約を設定し、ondelete制約を「setnull」に設定しました。ただし、制約が適用されていないようで、削除された行のフィールドにIDが残っています。
これが私がそれをどのように設定したかを示す小さな画面です
どこが間違っているのでしょうか?
あなたが投稿した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 ID=@id
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'