优化MySchool 第八章

--1------------------------------------------------------------------------------------------------create procedure usp_Get
@typeName varchar(50),
@result int output
as 
select @result=count(1) 
from GuestRecord
where  RoomID in 
(
select RoomID from Room 
where RoomTypeID in
(
  select TypeId from RoomType
  where TypeName=@typeName 
)
)

set nocount on
declare @room varchar(20)
declare @count int
set @room='标准间'
exec usp_Get @room,@count output
print '入住酒店'+@room+'的客人总人数是:'+cast(@count as varchar(10))         

--2-----------------------------------------------------------------------------------------------------

alter proc usp_GetRoomInfo
	@roomID int
AS
	if @roomID=-1
		SELECT a.RoomID,a.BedNum,a.RoomStateID,a.Description,a.GuestNum,a.RoomTypeID,b.TypeName,b.TypePrice,
			rtrim(c.RoomStateName) AS RoomStateName
		FROM Room a 
		INNER JOIN RoomType b ON a.RoomTypeID = b.TypeID
		INNER JOIN RoomState c ON a.RoomStateID = c.RoomStateID
	else
		SELECT a.RoomID,a.BedNum,a.RoomStateID,a.Description,a.GuestNum,a.RoomTypeID,b.TypeName,b.TypePrice,
			rtrim(c.RoomStateName) AS RoomStateName
		FROM Room a 
		INNER JOIN [RoomType] b ON a.RoomTypeID = b.TypeID
		INNER JOIN [RoomState] c ON a.RoomStateID = c.RoomStateID
		WHERE roomID = @roomID
		
		
		
		
EXEC usp_GetRoomInfo -1



--3--------------------------------------------------------------------------------------------------------------------------------------------
CREATE PROCEDURE usp_san
	@typeName varchar(20) 
AS
	DECLARE @typeID int
	SELECT @typeID=TypeID FROM RoomType WHERE TypeName = @typeName
	                           --不存在
	IF NOT EXISTS (SELECT * FROM Room WHERE RoomTypeID = @typeID) 
	BEGIN
	  DELETE FROM RoomType WHERE TypeID=@typeID
	  return @@ROWCOUNT        --影响行数
	    
	END
	ELSE
	  return -1


declare @roomtype varchar(20)
declare @result int
set @roomtype ='长包房'
exec @result=usp_san @roomtype
if(@result>0)
print '删除酒店客房类型是'+@roomtype+'的记录'+cast(@result as varchar(10))+'条'
else 
print '删除酒店客房类型是'+@roomtype+'的记录,失败!'



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值