Sql 针对DML触发器中插入的deleted的DDL语句

Sql 针对DML触发器中插入的deleted的DDL语句,sql,triggers,dml,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 当它被触发时,我希望得到一个错误。相反,它似乎完全忽略CREATETABLE

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

CREATE TRIGGER [Trigger52]
ON [dbo].[Table1]
FOR DELETE, INSERT, UPDATE 
AS 
BEGIN
     create table inserted (c1 int)
     select * from inserted                        
END
当它被触发时,我希望得到一个错误。相反,它似乎完全忽略CREATETABLE语句并选择已插入的行


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

触发器内部始终存在两个伪表:
inserted
deleted
。见:

SQL Server会自动创建和 管理这些表。你可以用 这些是临时的,内存驻留的 用于测试某些 数据修改和设置 DML触发动作的条件。 不能直接修改中的数据 表或执行数据定义 服务器上的语言(DDL)操作 桌子


这是规定的。SQL Server提供了一个“插入的”表(假设这是SQL Server)。为什么要首先在触发器中创建一个表?去掉:
createtableinserted(c1int)