2010-03-08 5 views
2

Je souhaite toujours mettre à jour la valeur d'une ligne de mise à jour dans la base de données. Imaginez, j'ai une table avec les noms et les prix Chaque fois qu'une ligne est insérée ou mise à jour, je veux baisser le prix d'un montant fixe. Comment puis-je faire avec SQL Server 2005?Ligne mise à jour de référence pour le déclencheur SQL Server

J'ai maintenant quelque chose comme

CREATE TRIGGER LowerPriceOnInsert ON products 
AFTER INSERT, UPDATE 
AS 
    IF UPDATE(ProductPrice) 

Répondre

7

Ok, donc disons que vous vouliez réduire le prix de 5 cents:

UPDATE p 
    SET price = price - 0.05 
    FROM dbo.Products AS p 
    INNER JOIN inserted AS i 
    ON p.ProductID = i.ProductID; 

http://msdn.microsoft.com/en-us/library/ms191300.aspx

+0

+1, ce que je pensais, bon lien aussi! –

+0

Cela fonctionne, cependant, je ne peux plus changer les valeurs des lignes. J'obtiens une erreur en disant que: Les valeurs de ligne mises à jour ou supprimées ne rendent pas la ligne unique ou elles modifient plusieurs lignes. Alors que je viens de modifier le prix d'une ligne en utilisant le studio de gestion. Une idée? Btw voter pour la réponse de toute façon – Henri

+0

Je l'ai eu corrigé en supprimant le IF UPDATE (ProductPrice). Thnx beaucoup! – Henri

Questions connexes