Mise à jour Stored procédure
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 :
Code:
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 |
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!
Si quelqu'un pourrait m'aider ça serait grandement apprécié! :P
Ps: J'ai le même probleme pour département et fournisseur!