当前位置: 网学 > 编程文档 > SQL SERVER > 正文

SQL server入门[第七章] 触发器

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式
第七章  触发器


>为什么需要触发器

use studb
go
if exists (select * from sysobjects where name = ''bank'')
drop table bank
if exists (select * from sysobjects where name = ''transinfo'')
drop table transinfo
create table bank
(
customername char(8) not null,
cardid char(10) not null,
currentmoney money not null
)
create table transinfo
(
cardid char(10) not null,
transtype char(4) not null,
transmoney money not null,
transdate datetime not null
)
go
alter table bank
  add constraint ck_currentmoney check(currentmoney>=1)
alter table transinfo
  add constraint df_transdate default(getdate()) for transdate
go
insert into bank (customername,cardid,currentmoney) value (''张三'',''001'',1000)
insert into bank (customername,cardid,currentmoney) value (''李四'',''002'',1)
insert into transinfo (cardid,transtype,transmoney) value (''001'',''支取'',200)
select * from bank
select * from transinfo
go


……………………………………………………………………………………………………………………………………


>创建INSERT触发器

use studb
go
if exists (select * from sysobjects where name = ''trigger_transinfo'')
drop trigger trigger_transinfo
create trigger trigger_transinfo
on transinfo
for insert
as
declare @type char(4),@outmoney money
declare @mycardid char(10),@balance money
select @type = transtype,@outmoney = transmoney,@mycardid = cardid from inserted
if (@type = ''支取'')
  update bank set currentmoney = currentmoney - @outmoney
else
  update bank set currentmoney = currentmoney + @outmoney
where cardid = @mycardid
print ''交易成功!交易金额:''+convert(varchar(20),@outmoney)
select @balance = currentmoney from bank where cardid = @mycardid
print ''卡号'' + @mycardid + ''    余额:'' + convert(varchar(20),@balance)
go
set nocount on   -----不显示T-SQL语句影响的行数
insert into transinfo (cardid,transtype,transmoney) values (''001'',''支取'',200)
insert into transinfo (cardid,transtype,transmoney) values (''002'',''存入'',50000)
select * from bank
select * from transinfo

……………………………………………………………………………………………………………………………………


>创建DELETE触发器

use studb
go
if&n

  • 下一篇资讯: Transact-SQL编程规范
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号