SQL Server存储过程作业(二)

USE Hotel
GO --阶段1:查询入住在指定客房类型的客房的顾客数
IF EXISTS(SELECT * FROM sysobjects WHERE name='usp_GetGuestNumByTypeName')
DROP PROC usp_GetGuestNumByTypeName
GO
CREATE PROCEDURE usp_GetGuestNumByTypeName
@typeName varchar(50), ----客房类型名称
@result int OUTPUT ---返回值,居住在指定客房类型客房的顾客数
AS
SELECT @result = count(1)
FROM GuestRecord
WHERE RoomID IN
(SELECT roomID FROM Room WHERE RoomTypeID=
(SELECT TypeID
FROM RoomType WHERE TypeName = @typeName))
PRINT @result
GO --调用存储过程
SET NOCOUNT ON
DECLARE @Count int
DECLARE @RoomType varchar(20)
SET @RoomType = '标准间'
EXEC usp_GetGuestNumByTypeName @RoomType,@Count OUTPUT
PRINT '入住酒店' + @RoomType + '的客人总人数是:' + CAST(@Count AS varchar(10))

IF EXISTS(SELECT * FROM sysobjects WHERE name='usp_GetRoomInfo')
DROP PROC usp_GetRoomInfo
GO
CREATE procedure 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
GO --调用存储过程
/*
DECLARE @RoomID int
SET @RoomID = 1008
EXEC usp_GetRoomInfo @RoomID
*/
EXEC usp_GetRoomInfo -1

IF EXISTS(SELECT * FROM sysobjects WHERE name='usp_deleteRoomTypeById')
DROP PROC usp_deleteRoomTypeById
GO
CREATE PROCEDURE usp_deleteRoomTypeById
@typeName varchar(20) ----客房类型
AS
DECLARE @typeID int
SELECT @typeID=TypeID FROM RoomType WHERE TypeName = @typeName
IF NOT EXISTS (SELECT * FROM Room WHERE RoomTypeID = @typeID) --Room表里没有相关信息时才删除
BEGIN
DELETE FROM RoomType WHERE TypeID=@typeID
return @@ROWCOUNT
END
ELSE
return -1
GO --调用存储过程
DECLARE @RoomTYPE varchar(20)
DECLARE @Result int
SET @RoomTYPE = '三人间'
EXEC @Result=usp_deleteRoomTypeById @RoomTYPE
IF (@Result > 0)
PRINT '删除酒店客房类型是'+ @RoomTYPE +'的记录' + CAST(@Result AS varchar(10)) + '条'
ELSE
PRINT '删除酒店客房类型是'+ @RoomTYPE +'的记录,失败'
SQL Server存储过程作业(二)的更多相关文章
- SQL Server存储过程作业(三)
阶段4:练习——插入入住客人记录 需求说明 使用存储过程将入住客人信息插入客人信息表中,要求: 检查身份证号必须是18个字符组成 押金的默认值为1000元 如果客人记录插入成功,输出客人流水号:否则输 ...
- SQL Server存储过程作业(一)
创建客房类型表RoomType 创建客房状态表RoomState 创建客房信息表Room 创建结账状态表ResideState 创建客人信息表GuestRecord 编写sql语句 USE maste ...
- 第七篇 SQL Server代理作业活动监视器
本篇文章是SQL Server代理系列的第七篇,详细内容请参考原文 在这一系列的上一篇,你创建并配置SQL Server代理作业.每个作业有一个或多个步骤,可能包含大量的工作流.在这篇文章中,将查看作 ...
- 第二篇 SQL Server代理作业步骤和子系统
本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...
- sql server 存储过程使用游标记录
sql server 存储过程使用游标记录--方便下次参考使用 游标的组成: 声明游标 打卡游标 从一个游标中查找信息 关闭游标 释放游标 游标类型: 静态游标 动态游标 只进游标 键集驱动游标 静态 ...
- (原)SQL Server 代理作业执行持续时间简述
本文目录列表: 1.SQL Server 代理作业概述2.获取代理作业执行时间方法一 3.获取代理作业执行时间方法二4.总结语 5.参考目录清单列表 正文: 1.SQL Server 代理作业概述 ...
- SQL Server存储过程 对数组参数的循环处理
方法一 分割 例:通过SQL Server存储过程传送数组参数删除多条记录 eg. ID 值为'1,2,3' 以下存储过程就是删除表中id号为1,2,3的记录: CREATE PROCEDURE De ...
- 【译】第七篇 SQL Server代理作业活动监视器
本篇文章是SQL Server代理系列的第七篇,详细内容请参考原文 在这一系列的上一篇,你创建并配置SQL Server代理作业.每个作业有一个或多个步骤,可能包含大量的工作流.在这篇文章中,将查看作 ...
- 【译】第二篇 SQL Server代理作业步骤和子系统
本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...
随机推荐
- 【模板】Hash
洛谷3370 这题煞笔的吧QAQ......排序去重或者Map都可以 #include<cstdio> #include<map> #include<string> ...
- redis学习五,redis集群搭建及添加主从节点
redis集群 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 在redis3.0之前,出现了sentinel工具来监控各个Master的状态(可以看上一篇博客).如果Master异 ...
- E. Rusty String
E. Rusty String time limit per test 3 seconds memory limit per test 512 megabytes input standard inp ...
- MYSQL 源码
http://www.cnblogs.com/wingsless/tag/MySQL/
- 027依据前序遍历和中序遍历,重建二叉树(keep it up)
剑指offer中题目:http://ac.jobdu.com/problem.php?pid=1385 题目描写叙述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.如果输入的前序遍历和中 ...
- Android - Error: "java.io.IOException: setDataSource failed.: status=0x80000000"
Error: "java.io.IOException: setDataSource failed.: status=0x80000000" 本文地址: http://blog.c ...
- 【Ubuntu QQ】记如何在Ubuntu上安装QQ(附下载)
什么困扰着一批批的ubuntu桌面用户?是麻花藤.哦不,是QQ,怎么在ubuntu上安装完美无瑕的QQ. 最佳解决方案在“三”部分,当然前两个也不失为解决方案 一.尝试的开始 配置: 双系统:Wind ...
- 微信小程序初探(一、简单的数据请求)
微信小程序出来有一段时间了,之前没看好小程序(觉得小程序体验不咋好,内心对新事物有抵触心里,请原谅我的肤浅[捂脸][捂脸]),不过后来偶然之间玩过小程序的游戏(跳一跳.球球大作战.猜画小歌 等),顿悟 ...
- [RK3288][Android6.0] 调试笔记 --- 普通串口的添加 【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/54574073 标签: rk3288 串口添加 2017-01-16 14:52 1079 ...
- Java-java-com-util-common-service:CrudService.java
ylbtech-Java-java-com-util-common-service:CrudService.java 1.返回顶部 1. package com.shineyoo.manager.ut ...