浅谈SQL Server 数据库之触发器
2010-02-26 00:00:00 来源:WEB开发网5、如果“触发器表”本身也存在约束,则在执行insert、delete、update触发器前,首先会检查“触发器表”上存在的约束。如果不满足约束,则不会执行其insert、delete、update触发器。
查看当前数据库中的所有触发器
select * from sys.triggers
创建临时表 #tableName
create table #tableName
如何使用 SQL Server 触发器
触发器2_初始化环境SQL
初始化环境
--------------- 初始化环境 ---------------
create database TriggerDatabase
use TriggerDatabase
go
if exists(select * from sysobjects where name='bank')
drop table bank
create table bank -- 账户信息表
(
userName varchar(10) not null, --顾客名
cardID varchar(10) not null, --卡号
currentMoney money not null --当前余额
)
if exists(select * from sysobjects where name='transInfo')
drop table transInfo
create table transInfo --交易信息表
(
cardID varchar(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;
alter table transInfo
add constraint CK_transType check(transType in('支取','存入'));
--------------- 添加测试数据 ---------------
/* 张三 1000元 */
insert into bank(userName,cardID,currentMoney)
values('张三','1001 0001',1000);
/* 李四 1元 */
insert into bank(userName,cardID,currentMoney)
values('李四','1001 0002',1);
/* 张三 支取 200元 */
insert into transInfo(cardID,transType,transMoney)
values('1001 0001','支取',200);
--------------- 查看结果 ---------------
select * from bank;
select * from transInfo;
go
赞助商链接