SQL触发器的分类以及使用
1:触发器语法介绍: (这里需要介绍下:很多初次接受触发器的同学,都不知道for | After | Instead of 是什么意思)
for 表示:你触发的SQL和 sql_statement都执行
After表示:你触发的SQL语句执行之前 ,先执行sql_statement,这里可以加条件如果满足条件触发,不满足条件执行触发的SQl
Instead of表示: 执行sql_statement,但是不执行你触发的SQL语句
基本语句如下﹕
create trigger trigger_name
on {table_name | view_name}
{for | After | Instead of }
[ insert, update,delete ]
as
sql_statement
2:触发器的回滚只需要在代码中加入 rollback transaction
3:实例
for:见 SQL触发器,初试牛刀(一)
After:
create trigger afterTableName
on TableName1
after insert
as
if (select count(*) from TableName1)=0--条件这里可以加条件如果满足条件触发,不满足条件执行触发的SQl
begin
--do something
print 'After实例 TableName1表添加数据的时候发生'
rollback transaction --回滚﹐避免加入
end
Instead of:
create trigger InsteadofTableName
on TableName1
Instead of insert
as
if 1=1--条件这里可以加条件如果满足条件触发,不满足条件执行触发的SQl
begin
--do something
print 'Instead of实例 TableName1表添加数据的时候发生'
rollback transaction --回滚﹐避免加入
end