gpt4 book ai didi

sql-server - 在 INSERT 触发器的 OUTPUT 子句中,是否可以引用两个 INSERTED 表?

转载 作者:行者123 更新时间:2023-12-01 13:00:18 25 4
gpt4 key购买 nike

在表中创建新记录时,我需要在其他两个表(b 和 c)中的每一个中创建一条记录。诀窍在于这两个新记录需要具有相同的 PK 值,该值必须是 UNIQUEIDENTIFIER,因此是使用 NEWID() 生成的,与原始记录的键无关。所以,我想在 INSERT TRIGGER 中做的事情看起来像这样:

INSERT INTO [b] ([bKey], [Foo])
OUTPUT inserted.[bKey] [cKey], i.[Bar] INTO [c]
SELECT NEWID(), i.[Foo] FROM inserted i

但是,这似乎是非法的(In an OUTPUT clause in an INSTEAD OF INSERT trigger, is it possible to reference both INSERTED tables?)。除了使用 CURSOR 和变量作为 NEWID() 的结果之外,还有什么方法可以做到这一点吗?

最佳答案

OUTPUT clause INSERT 语句的 of 不能引用输出子句的 inserted 伪表以外的任何表 - 请参阅关于 from_table_name 的注释:

Is a column prefix that specifies a table included in the FROM clause of a DELETE, UPDATE, or MERGE statement that is used to specify the rows to update or delete.

关于sql-server - 在 INSERT 触发器的 OUTPUT 子句中,是否可以引用两个 INSERTED 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6523259/

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