gpt4 book ai didi

sql-server - 仅更新插入行的触发器

转载 作者:行者123 更新时间:2023-12-02 07:21:00 25 4
gpt4 key购买 nike

我正在尝试使用 TSQL(或 SQL Server 2008)创建一个简单的触发器。问题是:我当前的触发器正在更新整个表。有一段时间这还好,但现在表已经超过 20k 行了。所以我想要一个只更新正在插入的行的触发器。

这是我当前的简单触发器:

CREATE TRIGGER trig_MyPplUpdate
ON [Persons]
FOR INSERT
AS
Begin
Update Persons
set MyFile = NULL
where Len(MyFile) < 60
End

我想我必须使用“插入”表或按主键排序的 row_number 函数。有什么想法吗?

最佳答案

如果有必要在此处使用触发器,我将使用INSTEAD OF触发器来调整预插入的值,并避免需要JOIN返回基表并随后更新它们。

CREATE TRIGGER trig_MyPplUpdate
ON [Persons]
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO Persons
SELECT foo,
bar,
CASE
WHEN Len(MyFile) >= 60 THEN MyFile
END
FROM Inserted
END

关于sql-server - 仅更新插入行的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8987097/

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