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