gpt4 book ai didi

SQL 触发器更新另一个表

转载 作者:行者123 更新时间:2023-12-04 21:14:18 24 4
gpt4 key购买 nike

我是触发器的新手...有人可以帮我设置触发器吗?

我有表:

Name | Number

我想在我的表收到类似这样的查询时编写一个触发器

update MyTable 
set Number = Number + 1
where Name = 'myname'

当这个查询运行时,触发器应该更新另一个表,例如:

Update MyTable 2 
set Column = 'something'
where Name = 'myname (above name)

非常感谢!

最佳答案

您需要在表 1 上编写一个 UPDATE 触发器,以相应地更新表 2。

注意:SQL Server 中的触发器不会每行更新调用一次 - 它们被称为每条语句一次,并且内部“伪”表 InsertedDeleted 将包含多行,因此您在编写触发器时需要考虑到这一点。

在你的情况下,我会这样写:

-- 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) 以 set-based 的方式 - 将它加入到你的 dbo.Table2 的某些列上,它们有共同之处 ( ID 或其他东西)。

关于SQL 触发器更新另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24941692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com