• 酒店管理系统


    --  create 创建
    -- alter  更改
    --      程序   存储过程名
    create proc usp_guestnumbytypename 
    --客房类型名称            输出
    @typename nvarchar(32) output,
    --计数
    @count int output
    as  --例如
    --选择
    select @count=count(*) from 
    --客房信息表  内部 连接  客房类型表
    Room inner join RoomType
    --向  客房信息表.客房类型编号=客房类型.客房类型编号
    on Room.RoomTypeID=RoomType.TypeID
    --内部连接  客人信息表  向  客人信息表.客房编号=客房.客房编号
    inner join GuestRecord on GuestRecord.RoomID=Room.RoomID
     --   类型名称=自定义类型名称
    where TypeName=@typename
    go
    --声明局部变量  @count
    declare @count int
    --声明@typename
    declare @typename  nvarchar(32) 
    --赋值
    set @typename ='标准间'
    set @count=0
    --实行  存储过程名  
    exec usp_guestnumbytypename @typename output,@count output
    --打印
    print @count 
    print '入住'+@typename+'的客人总数是:'+convert(nvarchar(32),@count)
    
    
    
    
    go
    --第二题
    --创建  程序
    create procedure usp_RoomInfo
    --声明@roomnum
     @roomnum int
    as 
    --判断
    if(@roomnum=-1)
     begin
       --查询所有客房信息
       select room.RoomID,Room.BedNum,Room.RoomStateID,TypeName,TypePrice
        from room,roomtype
        where room.roomtypeid=Roomtype.TypeID
     end
    else
    begin
        select room.RoomID,Room.BedNum,Room.RoomStateID,TypeName,TypePrice
        from room,roomtype
        where room.roomtypeid=Roomtype.TypeID
        and Room.RoomID=@roomnum
    end
    --调用
    exec usp_RoomInfo -1
    
    go
    
     --第三题
    create procedure  usp_DelListByType
      @typeName nvarchar(20)
    as
     if not exists  --非  退出
     (
       select RoomTypeId from room  --房间的类型号
       where roomtypeid in 
       (
         select typeid
         from roomtype
         where typename=@typename
       )
     )
     begin
     --删除
        delete from roomtype
        where typeName=@typename
        --返回   错误行数
        return @@rowcount
    end
    else
    return -1
    
    --调用
    declare @result int
    --实行
    exec @result=usp_DelListByType '长包房'
    
    
    
    if(@result>0)
    print '删除酒店客房类型编号是三人间的记录'+convert(nvarchar(20),@result)+''
    else
    print @result
    
    
    go
    --第四题
    create Proc usp_insertGuestRecord
    --声明局部变量
      @identityID nvarchar(20),
      @guestName nvarchar(20),
      @roomID int,
      @resideID int,
      @resideDate datetime,
      @leaveDate datetime,
      @Deposit decimal(18,2)=1000,
      @TotalMoney decimal(18,2),
      @guestID int output
    as
     --检查身份证号
      if(len(@identityID)!=18)
      begin
        print '身份证号只能是18位'
        return
      end
      --押金的默认值为1000元(在参数的时候已经设置)
      --插入记录
      
      --开始  通过
      begin tran
       declare @ErrorSum int
       --向客人信息表中插入值
       insert into GuestRecord
       values(@identityID,@guestName,@roomID,@resideID,
       @resideDate,@leaveDate,@Deposit,@TotalMoney)
       set @ErrorSum=@ErrorSum+@@Error
       
       --将客人入住房间的当前状态设置为"入住"的状态编号
       declare @roomStateID int
       select @roomStateID=RoomStateID from roomState
       where RoomStateName='已入住'
       
       --更新  客人  赋值
       update room set RoomStateID=@roomStateID
       where RoomID=@roomID
       set @ErrorSum=@ErrorSum+@@Error
       if(@ErrorSum>0)
       begin
         rollback tran--回滚事务
       end
       else
       begin
       commit tran   --提交事务
       set @guestID=@@Identity
       end
       
       
       
       go
     --调用
     declare @guestID int
     exec usp_insertGuestRecord 
    
    '410523198806267523','李小龙',1008,1,'2013-3-11','2013-3-15',500,500,@guestID output
    if(@guestID>0)
    begin
      print '插入客人记录操作成功'
      print '客户编号是'+convert(nvarchar(20),@guestID)
    end
    else
     print '操作失败'
    
    
    
    
    
     
  • 相关阅读:
    05.设计模式_建造者模式
    04.设计模式_抽象工厂模式
    03.设计模式_工厂方法模式
    02.设计模式_单例模式
    01.设计模式_简单工厂模式
    cocos-js一些问题
    blender
    游戏编程模式
    Unity自动打包工具
    unity调用ios原生代码objective-c和回调
  • 原文地址:https://www.cnblogs.com/WuXuanKun/p/5276485.html
Copyright © 2020-2023  润新知