2009-12-21 68 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)操作。

相關問題