0

我试图找出对表触发器中删除和插入的逻辑表执行 DDL 语句的影响。我有:

CREATE TRIGGER [Trigger52]
ON [dbo].[Table1]
FOR DELETE, INSERT, UPDATE 
AS 
BEGIN
     create table inserted (c1 int)
     select * from inserted                        
END

当它被触发时,我预计会得到一个错误。相反,它似乎完全忽略了 create table 语句并选择已插入的行。

是否有描述这种行为或解释的文档?

4

1 回答 1

0

触发器内部总是存在两个伪表:inserteddeleted. 请参阅使用插入和删除的表

SQL Server 自动创建和管理这些表。您可以使用这些临时的、驻留在内存中的表来测试某些数据修改的效果并为 DML 触发操作设置条件。您不能直接修改表中的数据或对表执行数据定义语言(DDL)操作。

于 2009-12-21T20:55:55.057 回答