【发布时间】:2010-10-21 19:32:14
【问题描述】:
SQL Server 2005+
我有一个带有INSTEAD OF INSERT 触发器的视图。在触发器的主体内,我想使用带有 OUTPUT 子句的语句,它引用了两个 INSERTED 表:
-
INSTEAD OF INSERT触发器的外部INSERTED表 -
OUTPUT子句的内部INSERTED表
MSDNsays this:
如果在触发器的主体内使用包含 OUTPUT 子句的语句,则必须使用表别名来引用触发器的插入和删除表,以避免与与 OUTPUT 关联的 INSERTED 和 DELETED 表重复列引用。
但别名似乎不起作用:
CREATE TRIGGER v_insert ON v
INSTEAD OF INSERT
AS BEGIN
INSERT INTO t (a, b, c)
OUTPUT inserted.a, inserted.b, outer_inserted.d INTO t_prime (a, b, d)
SELECT a, b, c
FROM inserted as outer_inserted
END
它产生错误“无法绑定多部分标识符“outer_inserted.d”。这是否意味着我尝试做的事情是不可能的?
【问题讨论】:
标签: sql-server triggers