SQL 第八章
来源:互联网 发布:java自行车价格表 编辑:程序博客网 时间:2024/05/22 03:44
--阶段1:根据输入的客房类型名称,统计入住的客人总人数 create procedure usp_GetGuestNum @TypeName varchar(32), @GuestNum int output as select @GuestNum=COUNT(*) from GuestRecord where RoomID in ( select RoomID from Room where RoomTypeID in ( select RoomTypeID from RoomType where TypeName=@TypeName ) ) --调用存储过程 declare @num int exec usp_GetGuestNum '张淼',@num output print 'total:'+convert(nvarchar(20),@num) --阶段2:根据房间号查询客房信息 --通过房间号查询客房的相关信息 --如果房间号为-1,表示查询所有客房信息,包括客房ID,床位数, --客房状态ID,客房类型和房价。 create procedure usp_RoomInfo @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 1008 --阶段3:删除某种客房类型记录 --需求说明:根据客房类型删除客房类型记录, --如果操作成功(客房信息表Room没有 --对应记录才可以删除),返回删除的记录数,否则返回-1 select * from roomtype select * from room 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 --阶段4:练习--插入入住客人记录 --需求说明:使用存储过程将入住客人信息插入客人信息表中, --检查身份证号必须是18个字符组成 --押金的默认值为1000元 --将客人入住房间的当前状态设置为"入住"的状态编号 --如果客人记录插入成功,输出客人流水号。 create Proc usp_insertGuestRecord @identityID nvarchar(20), @guestName nvarchar(20), @roomID int, @resideID int, @resideDate datetime, @leaveDate datetime, @Deposit decimal(18,2)=1000, --押金的默认值为1000元 @TotalMoney decimal(18,2), @guestID int output as --检查身份证号 if(len(@identityID)!=18) begin print '身份证号只能是18位' return end --插入记录 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 --insert或update这两个过程中至少有一个出了错 if(@ErrorSum>0) begin rollback tran end else begin commit tran set @guestID=@@Identity end --调用存储过程 declare @guestid int exec usp_insertGuestRecord '410523198806267523','李小龙',1008,1,'2013-3-11','2013-3-15',500,500,@guestid output if(@guestid>0) begin print '操作成功,客户编号是'+convert(nvarchar(20),@guestid) end else print '操作失败'
0 0
- SQL笔记 第八章
- SQL 第八章
- 第八章 PL/SQL子程序
- 第八章 PL/SQL子程序
- Head First SQL 第八章
- pl/sql入门第八章--数据库游标
- PL/SQL程序设计 第八章 触发器
- PL/SQL程序设计 第八章 触发器
- SQL基础第八章数据完整性
- SQL高级 第八章 酒店管理系统
- 第八讲 动态SQL
- SQL必知必会 笔记 第八章 使用数据处理函数
- linux程序设计——执行SQL语句(第八章)
- linux程序设计——执行SQL语句(第八章)
- Mysql系列课程--第八章 sql精选35道题
- 第八章
- 第八章
- 第八章
- u-boot启动流程分析(2)_板级(board)部分
- java 基础知识六 字符串2
- VM中共享文件数据linux ----VMWare Tools 12 pro
- 第八章酒店管理系统
- 优化MySchool 第二章
- SQL 第八章
- 【PAT】1114. Family Property
- Java SE7新特性之try-with-resources语句
- 优化myschool 第八章 酒店管理系统
- IOS关于毛玻璃效果的使用
- windows编译X264库
- ImageView实现图片裁剪和显示功能
- Servlet基础编程
- Android.support.v4.app.Fragment 和 android.app.Fragment 区别