gpt4 book ai didi

sql - 在触发器中使用插入值

转载 作者:行者123 更新时间:2023-12-02 08:46:28 24 4
gpt4 key购买 nike

我正在为我的一个表编写触发器。我想要做的是,我想用插入的字段之一更新另一个表列。

CREATE TRIGGER [dbo].[Trigger_TestTrigger]
ON [dbo].[TableA]
FOR INSERT
AS

BEGIN
SET NoCount ON
DECLARE @variable UNIQUEIDENTIFIER
SELECT @variable = TableB.colA1 FROM TableB WHERE (TableB.colB1 = INSERTED.colA1)
IF (@variable != INSERTED.colA2)
BEGIN
UPDATE TableB SET colB4 = INSERTED.colA2 WHERE TableB.colB1 =INSERTED.colA1
END
END

但是在创建这个触发器到数据库的时候报错了。错误是:

 "INSERTED.colA1" could not be bound.
"INSERTED.colA2" could not be bound.

通常 INSERTED 具有刚插入的值。那么,我应该如何获得插入到表“TableA”中的值。如果插入不能这样使用,请问正确的做法是什么。

最佳答案

你应该像对待任何其他表一样对待插入

SELECT @variable = TableB.colA1 
FROM TableB
inner join inserted ON TableB.colB1 = INSERTED.colA1

请注意 inserted 可能包含不止一行,因此这实际上不会始终提供您想要的结果

关于sql - 在触发器中使用插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158298/

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