标签:
创建一个InsertS的存储过程,向S中插入一条记录,新记录的值由参数提供。如果未提供所在城市的值,由参数的默认值‘济南’代替。并验证该存储过程的执行情况。
create procedure InsertS @Sno varchar(10), @sname varchar(20), @statu int, @City varchar(20)=‘济南‘ as insert into s values (@Sno,@sname,@statu,@City) Go declare @Sno varchar(10) declare @sname varchar(20) declare @statu int declare @City varchar(20) execute InsertS ‘s9‘,‘方向‘,‘60‘ go
设置参数的默认值可以先在创建时设置一个值。
create procedure QuerySPJ @Ja varchar(10), @zongde varchar(10) output as select * from spj where jno=@Ja select @zongde= sum(qty) from spj where jno=@Ja Go declare @Ja varchar(10) declare @zongde varchar(10) execute QuerySPJ ‘j3‘,@zongde output print @zongde
创建一个触发器,使得在S表中删除某条记录时,SPJ表中的数据也进行相应的删除操作。
create trigger deletespj on s after delete as delete from spj where sno=(select sno from deleted) delete from s where sno=‘s2‘
创建一个供应历史表hspj(sno,pno,jno,qty,username,modifydate),记录供应变化情况。实现这样的约束控制:如果spj表中的某条供应记录的qty发生改变,就在hspj表中插入一行历史记录,其中username为操作的用户名,modifydate为操作的时间。
create table hspj( sno varchar(10) , pno varchar(10), jno varchar(10), username varchar(50), modifydate varchar(50) ) create trigger bianhua on spj after insert,update as insert into hspj select sno, pno,jno ,system_user,getdate()from inserted
updata操作也属于inserted如上图
标签:
原文地址:http://www.cnblogs.com/herefree/p/5525342.html