Bonjour
J'ai une fiche (basée sur la table TABLE_PERE) avec deux grilles (basée respectivement sur les tables TABLE_FILS1 et TABLE_FILS2)
Quand une ligne est ajoutée dans TABLE_FILS1, elle alimente la table TABLE_STOCK avec le bon Id_TABLE_FILS1 et en laissant Id_TABLE_FILS2 à NULL
Quand une ligne est ajoutée dans TABLE_FILS2, elle alimente la table TABLE_STOCK avec le bon Id_TABLE_FILS2 et en laissant Id_TABLE_FILS1 à NULL
Voici le code des tables
Le définition de la dernière clé étrangère pose problème, ce qui se comprend
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 create table TABLE_PERE ( Id_TABLE_PERE uniqueidentifier, CONSTRAINT [TABLE_PERE_pk] PRIMARY KEY CLUSTERED ( [Id_TABLE_PERE] ASC ) ) create table TABLE_FILS1 ( Id_TABLE_PERE uniqueidentifier, Id_TABLE_FILS1 uniqueidentifier , CONSTRAINT [TABLE_FILS1_pk] PRIMARY KEY CLUSTERED ( [Id_TABLE_FILS1] ASC ) ) ALTER TABLE dbo.TABLE_FILS1 WITH NOCHECK ADD CONSTRAINT [FK_TABLE_FILS1_PERE] FOREIGN KEY(Id_TABLE_PERE) REFERENCES [dbo].[TABLE_PERE] ([Id_TABLE_PERE]) ON DELETE CASCADE GO create table TABLE_FILS2 ( Id_TABLE_PERE uniqueidentifier, Id_TABLE_FILS2 uniqueidentifier , CONSTRAINT [TABLE_FILS2_pk] PRIMARY KEY CLUSTERED ( [Id_TABLE_FILS2] ASC ) ) ALTER TABLE dbo.TABLE_FILS2 WITH NOCHECK ADD CONSTRAINT [FK_TABLE_FILS2_PERE] FOREIGN KEY(Id_TABLE_PERE) REFERENCES [dbo].[TABLE_PERE] ([Id_TABLE_PERE]) ON DELETE CASCADE GO create table TABLE_STOCK ( Id_TABLE_STOCK uniqueidentifier, Id_TABLE_PERE uniqueidentifier, Id_TABLE_FILS1 uniqueidentifier , Id_TABLE_FILS2 uniqueidentifier , CONSTRAINT [TABLE_STOCK_pk] PRIMARY KEY CLUSTERED ( [Id_TABLE_STOCK] ASC ) ) ALTER TABLE dbo.TABLE_STOCK WITH NOCHECK ADD CONSTRAINT [FK_TABLE_STOCK_PERE] FOREIGN KEY(Id_TABLE_PERE) REFERENCES [dbo].[TABLE_PERE] ([Id_TABLE_PERE]) GO ALTER TABLE dbo.TABLE_STOCK WITH NOCHECK ADD CONSTRAINT [FK_TABLE_STOCK_FILS1] FOREIGN KEY(Id_TABLE_FILS1) REFERENCES [dbo].[TABLE_FILS1] ([Id_TABLE_FILS1]) ON DELETE CASCADE GO -- Erreur L'introduction d'une contrainte FOREIGN KEY 'FK_TABLE_STOCK_FILS2' sur la table 'TABLE_STOCK' peut provoquer des cycles ou des accès en cascade multiples. Spécifiez ON DELETE NO ACTION ou ON UPDATE NO ACTION, ou modifiez d'autres contraintes FOREIGN KEY. ALTER TABLE dbo.TABLE_STOCK WITH NOCHECK ADD CONSTRAINT [FK_TABLE_STOCK_FILS2] FOREIGN KEY(Id_TABLE_FILS2) REFERENCES [dbo].[TABLE_FILS2] ([Id_TABLE_FILS2]) ON DELETE CASCADE GO
La question est donc : A t-on une solution alternative ?
Merci de votre aide
Partager