SQLserver中触发器创建常用语句

1 if update(列名)
检查是否更新了某一列,用于 insert 或 update,不能用于 delete。
例:
create trigger f
on tbl
for update
as
    if update(status) or update(title)     --更新了 status 或 title 列
-------------------------------------------
2 rollback
事物回滚。
create trigger tr
on 表名
for update
as
    if update(userName)
        rollback tran
 
关键在最后两句,其解释为:如果更新了 userName 列,就回滚事务。
-------------------------------------------
3 @@rowcount
系统变量,更改的行数。
@@ROWCOUNT返回受上一语句影响的行数,返回值类型为 int 整型。 如果行数大于 20 亿,则需要使用 ROWCOUNT_BIG。

@@ROWCOUNT和@@ERROR变量的值,在执行完一条语句后总是会发生变化,所以我们将他们作为判断的依据的时候应该首先保存在局部变量中。他们反映的都是紧接着的上一条语句对他们的影响!

我们通常可以通过update、insert语句并使用@@ROWCOUNT来检测是否更改了任何一些行。
-------------------------------------------
4 declare
声明变量。
例:
declare @n int        --定义了一个int类型的变量@n
-------------------------------------------
5 object_id
object_id(N'student_sum',N'U') is null--判断student_sum表是否存在
-------------------------------------------
6 if not exists/exists
 if not exists (select * from student_sum)--判断表中是否有记录
-------------------------------------------
7 if 特殊运算符
特殊运算符:IN、NOT IN、BETWEEN…AND…、LIKE、NOT LIKE、IS NULL、IS NOT NULL、SOME|ANY、ALL、EXISTS、NOT EXISTS。
例:
if @a in('F','M')/(select子句)    --若@a在'F'或'M'两者之一或select子句

if @a between 0 and 100    --若@a在0-100之间

if @a like'D[0-9][0-9]'    --若@a为DXX,X为0~9其中一个

if @a is null        --若@a为空值

if @a >= all/any/some(select子句)    --若@a>=子句集合中所有/任意/某些

if exists(select子句)    --子句集合是否至少有一个元组

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值