Bonjour,
l'architecture de ma base de données est comme sur l'image jointe à ce message.
Voilà le trigger que j'ai créé:
Le message d'erreur est toujours le même : The subquery returns more than 1 value... Pourtant, je me suis efforcé à suivre tous les conseils que j'ai trouvés un peu partout. La preuve, tous mes autres déclencheurs marchent bien.
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 CREATE TRIGGER [dbo].[chargeAZero] ON [dbo].[situations_final] after INSERT AS BEGIN SET nocount ON UPDATE sfinal SET charge = 00 FROM inserted i INNER JOIN situations_final sfinal ON i.referencepiece = sfinal.referencepiece AND i.ancienposte = sfinal.ancienposte AND i.numerophase = sfinal.numerophase AND i.datestrategie = sfinal.datestrategie /*and i.Datecadence=sfinal.Datecadence*/ WHERE (SELECT sfinal.nouveauposte FROM situations_final sfinal INNER JOIN inserted i ON i.referencepiece = sfinal.referencepiece AND i.ancienposte = sfinal.ancienposte AND i.numerophase = sfinal.numerophase AND i.datestrategie = sfinal.datestrategie) IS NULL END
Je tiens également à préciser que j'insère manuellement des lignes sur la table 'situations' et un autre déclencheur m'insère des lignes et je veux donc que le déclencheur posté ici mettre le champ 'charge' à 0 lorsque 'nouveauposte' est NULL.
Ma deuxième question est la suivante: Comme vous l'aurez remarqué sur ma base de données, j'ai une table nommée 'Nomenclatures' avec 3 champs: pièce mère, pièce fille et quantité.
Pour mieux vous expliquer, je vous donne un exemple:
Pour faire une armoire, on a besoin de 4 tiroirs. Pour faire un tiroir, on a besoin de 3 m² de plaques en bois (je dis n'importe quoi). Donc pour faire une armoire, on a besoin de 4*3=12m² de plaques de plaques en bois.
Et donc, dans ma table, j'ai des des données ainsi réparties:
pièce mère: A pièce fille:B quantité:2
pièce mère: B pièce fille:C quantité:5
Je veux avoir un résultat comme ça :
A 1(une pièce de A) B 2 C 10(=2*5).
Ma troisième et dernière question: Est-il possible de ne rendre seul un déclencheur récursif? J'en ai pas mal, certains sur la même table et je veux rendre un déclencheur spécifique récursif.
Merci à vous.
Cordialement !
Partager