学习触发器笔记

下面是我这个上午学习触发器的结果。
首先是触发器的原型。
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'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值