浅谈SQL Server 数据库之触发器
2010-02-26 00:00:00 来源:WEB开发网触发器3_定义触发器的格式
定义触发器的格式
-- =============================================
-- Author: xugang
-- Create date: 2010-2-14
-- Description: 定义触发器的精简格式
-- [ ]:可选 { }必选
-- =============================================
create trigger [ schema_name. ] -- 触发器所属架构
trigger_name -- 触发器名称
on { table | view } -- 触发器的表或视图
[ with encryption ] -- 加密dml触发器定义(后面详解)
{ for | after }
/* after:只有在触发它的SQL语句执行成功后才能激发。
(只能对“表”定义after) */
{ insert,update,delete }
as
/* SQL语句... */
go
--查看当前数据库中的所有触发器
select * from sys.triggers
触发器4_insert 触发器SQL
insert 触发器
------------------ insert 触发器 ------------------
use TriggerDatabase
go
if exists(select * from sysobjects
where name='trig_insert_transInfo')
drop trigger trig_insert_transInfo
go
-- create trigger必须是批处理(go)的第一句
create trigger trig_insert_transInfo
on transInfo for insert
as
declare @_transType char(4), --定义变量
@_transMoney money,
@_cardID char(10),
@balance money --所剩余额
-- 从inserted临时表中获取记录值
select @_transType = transType,
@_transMoney = transMoney,
@_cardID = cardID
from inserted
if(@_transType = '支取')
update bank set currentMoney=currentMoney-@_transMoney
where cardID = @_cardID;
else
update bank set currentMoney=currentMoney+@_transMoney
where cardID = @_cardID;
--显示交易金额
print '交易成功! 交易金额:'
+ convert(varchar(20),@_transMoney)
--显示所剩余额
select @balance = currentMoney from bank
where cardId = @_cardID
print '卡号:'+@_cardID
+ ' 余额:'+convert(varchar(20),@balance);
go
------------------ 测试触发器 ------------------
-- delete from transInfo
set nocount on --不显示T-SQL影响的记录行数
insert into transInfo(cardID,transType,transMoney)
values('1001 0001','支取',200);
insert into transInfo(cardID,transType,transMoney)
values('1001 0001','存入',10000);
--查看结果
select * from bank
select * from transInfo
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接