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?

tabla 1 Tabla 2

¿Fue útil?

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
scroll top