您的位置:首页 > 其它

外键定义与触发器创建

2009-03-15 19:03 120 查看
首先创建主表

create table Master

(

VoteId int primary key,

VoteTitle varchar(30) not null,

VoteSum int default 0

)

insert into Master values(1,'选取班长',0)

insert into Master values(2,'选取学习委员',0)

insert into Master values(3,'选取组长',0)

再创建一个子表

create table Detail

(

VoteId int foreign key references Master(NameId),--定义外键,与主表关联

VoteDetailId int not null,

VoteItem varchar(30) not null,

VoteNum int detault 0,

primary key(VoteId,VoteDetailId) --定义双主键,只要不是两两相同就行

)

insert into Detail values(1,'班长1',1,0)

insert into Detail values(1,'班长2',2,0)

insert into Detail values(2,'委员1',1,0)

insert into Detail values(2,'委员2',2,0)

insert into Detail values(3,'组长1',1,0)

insert into Detail values(3,'组长2',2,0)

--创建触发器(当子表中的VoteNum加1时,主表中的VoteSum也加1,条件为具有相同的VoteId)

create trigger updateMaster

on Detail

for update

as

begin

update Master set VoteSum=VoteSum+1 where VoteId=(select top 1 VoteId from inserted)

end

//解释

inserted、deleted:

这是两个虚拟表,inserted 保存的是 insert 或 update 之后所影响的记录形成的表,deleted 保存的是 delete 或 update 之前所影响的记录形成的表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐