我是触发器新手 我有两个名为ArefSms和tblSalesProd
的表我希望在插入后我的触发器更新ArefSms,其中tblSalesProd.SalesID = ArefSms.SalesID 对于这个建议我写下面的代码
USE [ACEDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[areftblSalesProd] ON [dbo].[tblSalesProd]
AFTER INSERT
AS
Begin Try
Update ArefSms
set
qt=inserted.ProdQty
where ArefSms.SalesID=inserted.SalesID
End Try
Begin Catch
End catch
但现在我有错误
Msg 4104, Level 16, State 1, Procedure areftblSalesProd, Line 9
The multi-part identifier "inserted.SalesID" could not be bound.
我该怎么办?
答案 0 :(得分:3)
您需要在inserted
语句中指定update
。这是一个表格参考:
Update ArefSms
set qt=inserted.ProdQty
from inserted
where ArefSms.SalesID=inserted.SalesID;
答案 1 :(得分:1)
从其他表(在本例中为inserted
)更新表时,我更喜欢使用JOINs
的语法:
UPDATE Aref
SET Aref.qt=inserted.ProdQty
FROM ArefSms Aref
INNER JOIN inserted ON Aref.SalesID=inserted.SalesID