Clave externa del servidor SQL "en Eliminar establecer la restricción" no funciona
Pregunta
Estoy usando SQL Server Express 2008 con MMSE. He configurado una restricción de clave extranjera entre las tablas y establecí la restricción de eliminación en "establecer nulo". Sin embargo, no parece hacer cumplir la restricción y me queda la identificación en el campo de la fila ahora eliminada.
Aquí hay un pequeño sho de pantallat de cómo lo tengo configurado
¿Dónde podría estar equivocado?
Solución
El DDL que publicaste funciona bien para mí.
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
Devoluciones
ID FName DeliveryAreaID
----------- ------------------------------ --------------
1 Test 3
ID FName DeliveryAreaID
----------- ------------------------------ --------------
1 Test NULL
¿Puede simplemente verificar el estado habilitado para su final?
SELECT is_disabled,* FROM sys.foreign_keys where name='FK_Customer_DeliveryAreas'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow