针对已删除的DDL语句在DML触发器中插入

时间:2009-12-21 18:46:28

标签: sql triggers dml

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

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

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

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

1 个答案:

答案 0 :(得分:0)

内部触发器总是存在两个伪表:inserteddeleted。见Using the inserted and deleted Tables

  

SQL Server自动创建和   管理这些表。您可以使用   这些临时的,记忆驻留的   用来测试某些效果的表格   数据修改和设置   DML触发器操作的条件。   您无法直接修改数据   表或执行数据定义   语言(DDL)操作   表。