在觸發器的“觸發”過程中,有兩個臨時表inserted和deleted發生了作用。這兩個特殊的臨時表inserted和deleted,僅僅在觸發器運行時存在,它們在某一特定時間和某一特定表相關。 CREATE TABLE [dbo].[A] ( [id] INT IDENTITY (1, 1) NO ...
在觸發器的“觸發”過程中,有兩個臨時表inserted和deleted發生了作用。這兩個特殊的臨時表inserted和deleted,僅僅在觸發器運行時存在,它們在某一特定時間和某一特定表相關。
CREATE TABLE [dbo].[A] (
[id] INT IDENTITY (1, 1) NOT NULL, //自增IDENTITY(m,n)從m開始每次加n
[created] DATETIME DEFAULT (getdate()) NOT NULL,
[updated] DATETIME NULL,
PRIMARY KEY CLUSTERED ([id] ASC)//CLUSTERED 是聚集索引插入時會花費時間 查詢時省時
);
//舉個例子,如果一個頁面已經寫滿了數據,你要插入一行,如果是非聚集索引,
//sql會隨便找個地方保存,把地址記錄進索引,但是如果是聚集索引,
//會把數據插入到這個頁面,而後面的數據同時會往後移動(用頁面拆分的辦法),
//看上去速度要慢,但是聚集索引在搜索時,速度會比非聚集索引快,因為他們是物理排序的
GO
CREATE TRIGGER TrigAUpd
ON A FOR UPDATE
AS UPDATE A set updated = GetDate() where id IN (select id from inserted);