2
我正在使用帶有mmse的sql server express 2008。 我已經設置了表之間的外鍵約束,並將on delete約束條件設置爲「set null」。 然而,它似乎沒有強制約束,我留在現在刪除行的字段中的ID。SQL Server外鍵「On Delete Set Null」約束不起作用
這裏是一個小screen sho噸如何我有它設置
其中可我是想錯了?
我正在使用帶有mmse的sql server express 2008。 我已經設置了表之間的外鍵約束,並將on delete約束條件設置爲「set null」。 然而,它似乎沒有強制約束,我留在現在刪除行的字段中的ID。SQL Server外鍵「On Delete Set 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'
你剛剛設置了這個嗎?如果是的話,你按SSMS保存?看來FK約束必須被禁用或根本不存在,如果它給你留下一個孤行。否則,你可以編寫完整的DDL爲兩個表涉及? – 2011-01-25 15:33:36
是的。我保存並使用了VStudio,並將架構傳遞給Designer。但仍然不起作用。無論是在SSMS中進行刪除還是通過VStudio進行編程。 – BastanteCaro 2011-01-25 15:43:41