Salut tout le monde, Je suis entrain d'écrire une stored procedure qui update mon "Inventaire".
Ma base de donnée possède 6 tables. Sois "Produit", "Inventaire", "Emplacement", "Departement", "Fournisseur", "Localisation".
Chaque table possède une clé primaire sous le nom de "id".
J'ai fait une stored procedure qui fais un select de certain champs, jusqu'à là, tout va bien!
Voici les champs que je selectionne -> CodeProduit, DescriptionProduit, QuantiteInventaire, Emplacement, Departement, compagnieInventaire, Fournisseur, taxProduit, prixProduit.
Le problème survient lorsque je fais un update.
Exemple:
CodeProduit : 45a.......45b
DescriptionProduit : livre......crayon
QuantiteInventaire : 4........2
Emplacement : Mur droit ....... Mur droit
Departement : dept1.........dept1
compagnieInventaire : comp1.......comp2
Fournisseur : fourn1.........fourn2
taxProduit : vrai.........vrai
prixProduit: 2,00......5,00
Donc, si je décide de modifier l'emplacement du "crayon" pour Mur Gauche, considérant que j'ai le même "id" pour l'emplacement, sois exemple id=1 pour le mur droit. Evidemment, les 2 articles vont changés d'Emplacement. Ce que je ne veux pas, considérant que je n'ai que déplacer le crayon!
Voici ma procédure :
Bon, je comprend que je ne dois pas faire "where db_emplacement.id = @idEmplacement". Mais, je n'arrive pas à trouver une méthode qui va sélectionner la bonne item sans toucher au Id!
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
58
59
60
61
62 ALTER PROCEDURE [dbo].[mettreAjourInventaire] -- Add the parameters for the stored procedure here @idInventaire int, @idProduit int, @idDepartement int, @idFournisseur int, @idEmplacement int, @code nvarchar(30), @Description nvarchar(70), @Quantite int, @Emplacement nvarchar(50), @Departement nvarchar(30), @Compagnie nvarchar(30), @Fournisseur nvarchar(30), @Taxable bit, @Prix float, @estDevalue bit, @estSupprime bit AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here update db_produit set db_produit.code_produit = @code, db_produit.ProduitDescription = @Description, db_produit.ProduittaxeTPS = @Taxable, db_produit.Réserver1 = @Prix, ProduitEst_devalué = @estDevalue, ProduitEst_supprimé=@estSupprime where db_produit.id = @idProduit update db_inventaire set db_inventaire.InventaireQuantité = @Quantite, db_inventaire.InventaireCompagnie = @Compagnie where db_Inventaire.ID = @idInventaire update db_emplacement set db_emplacement.EmplacementDescription = @Emplacement where db_emplacement.id = @idEmplacement update db_departement set DepartementCode = @Departement where db_departement.id = @idDepartement update db_fournisseur set FournisseurCode = @Fournisseur where db_fournisseur.id = @idFournisseur END
Si quelqu'un pourrait m'aider ça serait grandement apprécié!
Ps: J'ai le même probleme pour département et fournisseur!
Partager