在触发器的“触发”过程中,有两个临时表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);