Ok. J'ai essayé le déclencheur, mais ça n'a pas marché.Besoin de changer ma structure SQL pour suppression
Je Cascades de A à Linker et de B à Linker, Cascade des Utilisateurs à A, aucune action de l'utilisateur B.
Mon déclencheur est sur les utilisateurs et est la suivante:
set ANSI_NULLS ON set quoted_identifier go ALTER TRIGGER [trig_delUser] ON [dbo] [aspnet_Users] POUR SUPPRIMER AS SET NOCOUNT ON. DE SUPPRIMER B OU B.UserId = Deleted.UserId
je reçois l'exception: L'instruction DELETE en conflit avec la contrainte de référence "FK_B_aspnet_Users"
Je travaille avec une version modifiée aspnetdb base de données SQL:
[schéma partiel DB] [2]
Je suppression en cascade sur la relation B_Linker et la relation et il A_Linker ne pas s eem à être un danger de cycles se produisant.
Lorsque je supprime un utilisateur, je voudrais que tous A entrées et les entrées B à supprimer ainsi que tout éditeur de liens associés entrées; malheureusement, SQL mgmt studio me permettra seulement de mettre une cascade supprimer la règle sur SOIT aspnet_Users_A ou aspnet_Users_B, pas les deux.
Que dois-je faire?
Merci beaucoup.
Je dois également pouvoir supprimer des entrées de A ou B, en supprimant les entrées Linker associées en même temps. Aurai-je besoin d'un proc/trigger pour ça aussi? –
@KR: En utilisant l'approche SP, oui. En utilisant l'approche de déclenchement, vous pouvez créer le déclencheur * seulement * sur A ou B; SQL Server ne se plaindra pas d'une relation en cascade de 'aspnet_Users' à la fois' A' et 'B' tant qu'au moins l'un d'eux n'a pas la cascade de' Linker'. – Aaronaught
Ok. J'ai essayé le déclencheur, mais ça n'a pas marché. Je Cascades de A à Linker et de B à Linker, Cascade des Utilisateurs à A, aucune action de l'utilisateur à B. Mon déclenchement est sur les utilisateurs et est la suivante: ANSI_NULLS fixés SUR set quoted_identifier aller ALTER TRIGGER [trig_delUser] ON [dbo] [aspnet_Users] POUR SUPPRIMER AS SET NOCOUNT ON. DE SUPPRIMER B OU B.UserId = Deleted.UserId Je reçois l'exception: L'instruction DELETE en conflit avec la contrainte de référence « FK_B_aspnet_Users » –