2

J'utilise sql server express 2008 avec mmse. J'ai mis en place une contrainte de clé étrangère entre to tables et ai mis la contrainte on delete à "set null". Cependant, il ne semble pas imposer la contrainte et je me retrouve avec l'ID dans le champ de la ligne maintenant supprimée.SQL Server clé étrangère "sur la suppression de définir Null" contrainte ne fonctionne pas

ici est une petite screen sho t de la façon dont je l'ai mis en place

où pourrais-je aller mal?

Table 1Table 2

+0

Avez-vous seulement configuré cela? Si oui, avez-vous appuyé sur sauvegarder dans SSMS? Il semble que la contrainte FK doit être désactivée ou pas du tout si elle vous laisse avec une ligne orpheline. Sinon, pouvez-vous écrire un DDL complet pour les deux tables impliquées? –

+0

Oui. J'ai sauvegardé et j'utilise aussi VStudio et le schéma est passé au Designer. mais ça ne marche toujours pas. si je fais une suppression dans SSMS ou par programmation via VStudio. – BastanteCaro

+0

Pouvez-vous écrire le DDL pour les deux tables (y compris la définition FK) et l'ajouter à votre question? –

Répondre

3

ddl vous avez posté fonctionne bien pour moi.

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 

Retours

ID   FName       DeliveryAreaID 
----------- ------------------------------ -------------- 
1   Test       3 


ID   FName       DeliveryAreaID 
----------- ------------------------------ -------------- 
1   Test       NULL 

Pouvez-vous vérifier l'état activé votre fin?

SELECT is_disabled,* FROM sys.foreign_keys where name='FK_Customer_DeliveryAreas' 
+0

Merci, c'était génial. il semble fonctionner parfaitement maintenant. Je n'ai aucune idée de ce qui était le problème précédemment. Je n'ai rien changé, mais merci pour l'aide. – BastanteCaro

Questions connexes