Une table porte le nom "Stages". Chaque scène peut avoir des enfants de 0 à l'infini. Dans la table "Stages" il y a une colonne nommée "Parent". Cette colonne est une clé étrangère pour la même table "Stages".Suppression d'une arborescence en cascade dans MS SQL Server Express 2005
Comment faire une suppression en cascade pour cet arbre? Je veux quand suppression de toute ligne de ce tableau, supprimer automatiquement tous leurs enfants et leurs petits-enfants ...
Avec la requête suivante
GO
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Stage_Stage]') AND parent_object_id = OBJECT_ID(N'[dbo].[Stage]'))
ALTER TABLE [dbo].[Stage] WITH CHECK ADD CONSTRAINT [FK_Stage_Stage] FOREIGN KEY([parent])
REFERENCES [dbo].[Stage] ([id]) ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Stage] CHECK CONSTRAINT [FK_Stage_Stage]
GO
Je reçois cette erreur
Msg 1785, Level 16, State 0, Line 2
Introducing FOREIGN KEY constraint 'FK_Stage_Stage' on table 'Stage' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Msg 1750, Level 16, State 0, Line 2
Could not create constraint. See previous errors.
Msg 4917, Level 16, State 0, Line 1
Constraint 'FK_Stage_Stage' does not exist.
Msg 4916, Level 16, State 0, Line 1
Could not enable or disable the constraint. See previous errors.
Comment faire en utilisant MS SQL Enterprise Manager Express 2005? –
Cela fonctionne uniquement sur les tables de distinction. Lorsque le lien de table sur lui-même cela ne fonctionne pas –
@ Evl-ntnt, son fonctionne pour les tables qui ont un lien vers lui-même. Pouvez-vous fournir des informations sur ce que vous avez fait, et qu'est-ce qui ne fonctionne pas exactement? –