我是扳机的新手...有人可以帮我扳机吗?
我有表:
Name | Number
我想在我的表收到类似查询时编写触发器
update MyTable
set Number = Number + 1
where Name = 'myname'
运行此查询时,触发器应更新另一个表,例如:
Update MyTable 2
set Column = 'something'
where Name = 'myname (above name)
非常感谢你 !
您将需要UPDATE
在表1上编写触发器,以相应地更新表2。
注意:在SQL Server触发器不是每一行被更新调用一次-他们是所谓的每一次发言,以及内部的“伪”表格Inserted
,并Deleted
包含多行,所以你需要编写触发时考虑到这一点。
就您而言,我会写类似:
-- UPDATE trigger on "dbo.Table1"
CREATE TRIGGER Table1Updated
ON dbo.table1 FOR UPDATE
AS
BEGIN
-- update table2, using the same rows as were updated in table1
UPDATE t2
SET t2.Column = 'something'
FROM dbo.Table2 t2
INNER JOIN Inserted i ON t2.ID = i.ID
END
GO
诀窍是使用Inserted
伪表(该伪表包含UPDATE
-之后的新值-它具有与为其编写触发器的表完全相同的结构-在此处dbo.Table1
)以基于集合的方式使用-将该伪表连接到dbo.Table2
它们所在的某些列上有共同点ID
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句