2

我正在使用帶有mmse的sql server express 2008。 我已經設置了表之間的外鍵約束,並將on delete約束條件設置爲「set null」。 然而,它似乎沒有強制約束,我留在現在刪除行的字段中的ID。SQL Server外鍵「On Delete Set Null」約束不起作用

這裏是一個小screen sho噸如何我有它設置

其中可我是想錯了?

Table 1Table 2

+0

你剛剛設置了這個嗎?如果是的話,你按SSMS保存?看來FK約束必須被禁用或根本不存在,如果它給你留下一個孤行。否則,你可以編寫完整的DDL爲兩個表涉及? – 2011-01-25 15:33:36

+0

是的。我保存並使用了VStudio,並將架構傳遞給Designer。但仍然不起作用。無論是在SSMS中進行刪除還是通過VStudio進行編程。 – BastanteCaro 2011-01-25 15:43:41

回答

3

的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'