码迷,mamicode.com
首页 > 数据库 > 详细

sql sever的sql语句有关存储过程与触发器

时间:2016-05-25 00:33:01      阅读:1559      评论:0      收藏:0      [点我收藏+]

标签:

  1.  

    创建一个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


    设置参数的默认值可以先在创建时设置一个值。

    1. 创建一个QuerySPJ的存储过程,根据用户提供的工程项目代码查询该工程项目的使用零件情况,并返回使用零件的总数量。
      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如上图

       

sql sever的sql语句有关存储过程与触发器

标签:

原文地址:http://www.cnblogs.com/herefree/p/5525342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!