Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Trigger resulting in NULL value
Message
 
 
À
11/07/2013 15:48:10
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Stored procedures, Triggers, UDFs
Versions des environnements
SQL Server:
SQL Server 6.5 and older
Application:
Web
Divers
Thread ID:
01578216
Message ID:
01578228
Vues:
38
>How would I convert this to using your suggested syntax:
>
>
	UPDATE dbo.Items
>			SET Items.iqtyonhand = Items.iqtyonhand + Deleted.trn_qty - Inserted.trn_qty
>		FROM dbo.Items
>			INNER JOIN Inserted ON Items.iItemid = Inserted.trn_itmfk
>			INNER JOIN Deleted ON Items.iItemID = Deleted.trn_itmfk
>		WHERE iItemTypId = '43'
;with cteChanges AS (SELECT D.trn_itmfk AS ItemID, SUM(COALESCE(D.trn_qty,0) - COALESCE(I.trn_qty,0)) as ChangedQty
FROM Deleted D INNER JOIN Inserted I on D.trn_itmFk = I.trn_itmFK
GROUP BY D.trn_itmfk)

MERGE dbo.Items as Trg
USING cteChanges as Src ON Trg.ItemId = Src.ItemID
WHEN MATCHED and Trg.iItemTypeId = '43' 
THEN UPDATE SET iQtyOnHand = COALESCE(Trg.iQtyOnHand) + ChangedQty;
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform