第八章:课程总复习项目

  1. --1  
  2. alter procedure  usp_GetTotalNum  
  3.  @Typename nvarchar(32),  
  4.  @GuestNum int output  
  5. as  
  6.  select @GuestNum=COUNT(*) from  GuestRecord  
  7.  where RoomID in  
  8.  (  
  9.    select RoomID from  Room   
  10.    where RoomTypeID in  
  11.    (  
  12.      select TypeID from RoomType  
  13.      where TypeName=@Typename  
  14.    )  
  15.  )  
  16. declare @num int  
  17. exec usp_GetTotalNum 'Single',@num output  
  18. print 'total:'+convert(nvarchar(20),@num)  
  19. select * from guestrecord  
  20.   
  21. --2  
  22. create procedure usp_RoomInfo  
  23.  @roomnum int  
  24. as   
  25. if(@roomnum=-1)  
  26.  begin  
  27.    select room.RoomID,Room.BedNum,Room.RoomStateID,TypeName,TypePrice  
  28.     from room,roomtype  
  29.     where room.roomtypeid=Roomtype.TypeID  
  30.  end  
  31. else  
  32. begin  
  33.     select room.RoomID,Room.BedNum,Room.RoomStateID,TypeName,TypePrice  
  34.     from room,roomtype  
  35.     where room.roomtypeid=Roomtype.TypeID  
  36.     and Room.RoomID=@roomnum  
  37. end  
  38. exec usp_RoomInfo 1008  
  39.   
  40. --3  
  41. select * from roomtype  
  42. select * from room  
  43. create procedure  usp_DelListByType  
  44.   @typeName nvarchar(20)  
  45. as  
  46.  if not exists  
  47.  (  
  48.    select RoomTypeId from room  
  49.    where roomtypeid in  
  50.    (  
  51.      select typeid  
  52.      from roomtype  
  53.      where typename=@typename  
  54.    )  
  55.  )  
  56.  begin  
  57.     delete from roomtype  
  58.     where typeName=@typename  
  59.     return @@rowcount  
  60. end  
  61. else  
  62. return -1  
  63. declare @result int  
  64. exec @result=usp_DelListByType '标准间'  
  65. if(@result>0)  
  66. print '删除了'+convert(nvarchar(20),@result)+'条记录'  
  67. else  
  68. print @result  
  69.   
  70. --4  
  71.  create Proc usp_insertGuestRecord  
  72.   @identityID nvarchar(20),  
  73.   @guestName nvarchar(20),  
  74.   @roomID int,  
  75.   @resideID int,  
  76.   @resideDate datetime,  
  77.   @leaveDate datetime,  
  78.   @Deposit decimal(18,2)=1000,  
  79.   @TotalMoney decimal(18,2),  
  80.   @guestID int output  
  81. as  
  82.   if(len(@identityID)!=18)  
  83.   begin  
  84.     print '身份证号只能是18位'  
  85.     return  
  86.   end  
  87.   begin tran  
  88.    declare @ErrorSum int  
  89.    insert into GuestRecord  
  90.    values(@identityID,@guestName,@roomID,@resideID,  
  91.    @resideDate,@leaveDate,@Deposit,@TotalMoney)  
  92.    set @ErrorSum=@ErrorSum+@@Error    
  93.    declare @roomStateID int  
  94.    select @roomStateID=RoomStateID from roomState  
  95.    where RoomStateName='已入住'  
  96.    update room set RoomStateID=@roomStateID  
  97.    where RoomID=@roomID  
  98.    set @ErrorSum=@ErrorSum+@@Error  
  99.    if(@ErrorSum>0)  
  100.    begin  
  101.      rollback tran  
  102.    end  
  103.    else  
  104.    begin  
  105.    commit tran  
  106.    set @guestID=@@Identity  
  107.    end  
  108.  declare @guestID int  
  109.  exec usp_insertGuestRecord '410523198806267523','李小龙',1008,1,'2013-3-11','2013-3-15',500,500,@guestID output  
  110. if(@guestID>0)  
  111. begin  
  112.   print '操作成功,客户编号是'+convert(nvarchar(20),@guestID)  
  113. end  
  114. else  
  115.  print '操作失败'  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值