Не работает ограничение внешнего ключа SQL Server «Удалять установленное значение NULL» - PullRequest
2 голосов
/ 25 января 2011

Я использую sql server express 2008 с mmse.я установил ограничение внешнего ключа между таблицами и установил ограничение на удаление равным «set null».однако, похоже, что это ограничение не применяется, и я остался с идентификатором в поле удаленной строки.

вот небольшой экран шо t того, как я его настроил

, где я мог пойти не так? Таблица 2

1 Ответ

3 голосов
/ 25 января 2011

У меня отлично работает 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'
...