概述
下面是我这个上午学习触发器的结果。
首先是触发器的原型。
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ] --加密
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
[ WITH APPEND ]--附加
[ NOT FOR REPLICATION ]--表示当复制进程更改触发器所涉及的表时,不应执行该触发器。
AS--是触发器要执行的操作。
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) -- 测试是否插入或更新了提及的列,仅用于 INSERT 或 UPDATE 触发器中。
-- COLUMNS_UPDATED 返回 varbinary 位模式,表示插入或更新了表中的哪些列。
{ bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [ ...n ] --是触发器的条件和操作。触发器条件指定其它准则,以确定 DELETE、INSERT 或 UPDATE 语句是否导致执行触发器操作。
}
}
下面是我的一个小例子,希望高手指点。
CREATE TRIGGER myUpdate ON [dbo].[myClient]
FOR UPDATE
AS
declare @date varchar(10),@time varchar(8),@tmp varchar(20)
set @tmp=convert(varchar(20),getdate(),20)
set @date=left(@tmp,10)
set @time=right(@tmp,8)
if (update(serdate))
begin
insert into myLog values (@date,@time)
end
第三,查找数据库中是否有触发器,及触发器的位置(所在表名)
select a.name trggername,b.name tablename from sysobjects a
left join sysobjects b
on a.parent_obj=b.id
where a.type = 'tr'
最后
以上就是光亮绿草为你收集整理的学习触发器笔记的全部内容,希望文章能够帮你解决学习触发器笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复