创建触发器的语法
CREATE TRIGGER 触发器名
ON { 表名 | 视图名 }
[ WITH ENCRYPTION ]
{
{ FOR | AFTER | INSTEAD OF }
{ [ DELETE] [,] [ INSERT ] [,] [ UPDATE ] }
AS
[ IF UPDATE ( 列 ) [ { AND | OR } UPDATE ( 列 ) ] [ ...n ] ]
SQL语句[ ...n ]
}
例子:
-- insert 触发器
-- 在S表上创建一个触发器,如果插入的学生姓名为“猪二哥”则撤销插入,并提示“猪八戒”太挫,不是我们的学生
use TCS
go
create trigger Name_check
on S
for insert
as
declare @name nvarchar(20)
select @name = SN from inserted
if @name = '猪二哥'
begin
print ‘猪八戒太挫,不是我们的学生’
rollback transaction
end
go
insert into S values('S9','猪二哥','男','100','管理') -- 出入无效,被Name_check触发器删除
-- update 触发器
-- 在S表上创建一个update触发器,如果更改了性别,在更改无效
use TCS
go
create trigger Column_Sex
on S
for update
as
if update(Sex)
begin
print 'update on Sex is not allowed!'
rollback transaction
end
go
update S set Sex = '男' where SNo='S1'
-- 在S表上创建一个update触发器,如果更新后Age大于100,则更新无效
use TCS
go
create trigger Age_Check_i
on S
for insert
as
declare @age int
select @age = Age from inserted
if @age > 100
begin
print str(@age) + ' is too big !'
rollback transaction
end
go
update S set Age = 33 where SNo='S1'
insert into S values('S9','猪哥','男',105,'管理')
-- 删除触发器
drop trigger Age_Check_i
分享到:
相关推荐
sql server 触发器 数据库 sql server 触发器 数据库
CREATE TRIGGER TT ON TSYS_BAMKZ FOR INSERT AS INSERT TSYS_MKZ SELECT B.MKZM,A.yhz,B.PARENT FROM (SELECT DISTINCT yhz FROM TSYS_MKZ) A,INSERTED B
sqlserver 触发器 insert阿 一个关于触发器的小例子
sqlserver触发器例子 一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约`束。 二﹕ SQL ...
SQLServer触发器语法.pdf
第05节:SQLServer触发器Demo源代码.rar
新增用户发送邮件和手机短信的SqlServer触发器
一个SqlServer触发器的Delphi应用源代码..rar
Sqlserver触发器例子,Sqlserver触发器例子,Sqlserver触发器例子,Sqlserver触发器例子
最近用到触发器,研究了一下,现给菜鸟的你分享下。。
在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为什么要使用触发器?...
关于SqlServer 触发器这一章的幻灯片
SQL server 触发器,在触发Merge过程中,逐行触发的解决办法 用group by 避免是一次触发中的多行更新或删除。
利用SQLServer触发器实现表跟踪.pdf
此文档中详细的记载了,sql server触发器中自动生成的临时表,希望可以帮到有需要的朋友们!
SQLServer触发器实现不同服务器数据同步.pdf
讲述触发器创建,编辑,修改及功能,使用的时候很容易理解
1-[插入]触发器 2-[删除]触发器 3-[修改]触发器 4-[列级]触发器
/*------存储1 根据用户输入该学生编号,检查是否存在,若存在则显示出*/ Create procedure p1 @sno char(10) ,@sname char(10),@ssex char(2),@borndate datetime,@classname varchar(50) As Begin ...
使用SQL Server触发器实现数据表的级联更新.pdf