2009-12-21 43 views
0

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

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

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

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

+1

这是规定的。 SQL Server提供了一个“插入”表(假设这是SQL Server)。你为什么试图首先在触发器中创建表格? – 2009-12-21 19:56:14

+0

摆脱:'create table inserted(c1 int)' – 2009-12-21 20:41:56

回答

0

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

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

相关问题