SQL Server触发器语法格式

来源:互联网 发布:windows update 在哪 编辑:程序博客网 时间:2024/05/16 07:30

因为SQL Server的触发器有DML和DDL两大类,每一种又有一些小的种类。所以本文章就在DML和DDL两大类的基础上去编写。

DML触发器

1、语法格式

CREATE   TRIGGER   trigger_nameON { table | view }{{ { FOR | AFTER | INSTEAD   OF }{ [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE ] }ASsql_statement}} 

其中:TRIGGER的含义是触发器

示例:

①、如果创建的是INSERT触发器

creat   trigger   t_addnumon   学生信息for   insertasupdate   班级信息   set    班级人数=班级人数+1where   班级编号 = ( selete   所属班级   from   inserted )

这时去查询结果:

selete   班级人数   from   班级信息   where   班级编号   = '20050101'insert   into   学生信息  value ( '2009010101' , ' 王俊 ' , ' 女 ' , ' 1996-08-09 ' , ' 汉族 ' , '20050101 ')selete   班级人数   from   班级信息      where   班级编号   = '20050101'

结果显示:添加了一条信息

②、如果创建DELETE触发器

creat   trigger   t_deleteteacheron   教师信息for deleteas selete   姓名   as   被删除的教师姓名 , 性别 , 年龄 , 联系电话   from  deleted
这时去编写语句触发触发器:

delete   from   教师信息   where   教师编号   = ' 2005001 '

这时的查询结果:

③、如果创建UPDATE触发器

creat    trigger   t_updateon   学生信息for   updateasif ( update ( 姓名 )   or   update (性别 ) )beginprint ' 事务不能被处理,基础数据不能修改! 'rollback    transactionendelseprint ' 数据修改成功 !'

这时触发触发触发器:

update   教师信息   set   联系电话  =  ' 13598820567 '  where   教师编号   =  '20050010'
结果:

DDL触发器

1、语法格式

CREATE   TRIGGER   trigger_nameON   { ALL   SERVER | DATABASE }WITH   ENCRYPTION{ FOR | AFTER | { event_type }ASsql_statement

示例:

creat   trigger   t_notdeleteon   databasefor   drop_table , alter_tableasprint   '事务不能被处理,基础数据表不能被修改和删除!'rollbackdrop  table   student

结果:

原创粉丝点击