SQL Server存储过程作业(三)
--阶段4:添加一个入住客人的信息 IF EXISTS(SELECT * FROM sysobjects WHERE name='usp_insertGuestRecord')DROP PROC usp_insertGuestRecord GO CREATE procedure usp_insertGuestRecord@GuestID int OUTPUT, ---客户流水号@identityID varchar(50), ---身份证号@guestName nchar(20), ---客户姓名@roomID int, ---房间号@ResideDate datetime, ---入住时间@deposit decimal(18,2) = 1000 ---押金ASSET @GuestID = -1IF (@identityID IS NULL OR LEN(@identityID) <> 18)return -1BEGIN TRANSACTIONINSERT INTO GuestRecord(IdentityID,GuestName,RoomID,ResideID,ResideDate,Deposit)VALUES(@identityID,@guestName,@roomID,1,@ResideDate,@deposit)IF (@@ERROR <> 0)BEGINROLLBACK TRANSACTIONreturn 'false'ENDDECLARE @RoomStateID intSELECT @RoomStateID=RoomStateID FROM RoomStateWHERE RoomStateName = '已入住'---客房状态变为“入住”,客人数量增1Update Room set RoomStateID =@RoomStateID,GuestNum=GuestNum+1WHERE RoomID = @roomIDIF (@@ERROR <> 0)BEGINROLLBACK TRANSACTIONreturn -1ENDCOMMIT TRANSACTIONSET @GuestID=@@IDENTITYreturn 0 GO--调用存储过程 DECLARE @identityID varchar(50) ---身份证号 DECLARE @guestName nchar(20) ---客户姓名 DECLARE @roomID int ---房间号 DECLARE @deposit decimal(18,2) ---押金 DECLARE @ResideDate datetime ---入住时间 DECLARE @Result varchar(20) DECLARE @GuestID intSET @identityID = '11010119950506112x' SET @guestName = '风无痕' SET @roomID = 1008 SET @deposit = 1000 SET @ResideDate = GETDATE()EXEC @Result = usp_insertGuestRecord @GuestID OUTPUT,@identityID,@guestName,@roomID,@ResideDate,@deposit IF (@Result = 0) BEGINPRINT '插入客人记录操作成功' PRINT '客人编号是' + CAST(@GuestID AS varchar) END ELSEPRINT '插入客人记录操作失败'
--查询在维修状态的房间信息 create view RoomStateName asselect Room.RoomID,RoomType.TypeName,RoomState.RoomStateName from Roominner join RoomType on RoomType.TypeID=Room.RoomTypeIDinner join RoomState on RoomState.RoomStateID=Room.RoomStateIDwhere RoomState.RoomStateName='维修' goselect * from RoomStateName
--使用事物删除room表里面已经退房的旅客 begin transaction declare @errorNum int --错误的号码 set @errorNum=0 select * into historyGuest from GuestRecord where LeaveDate is not null set @errorNum=@errorNum+@@ERROR delete from GuestRecord where LeaveDate is not null set @errorNum=@errorNum+@@ERROR if(@errorNum<>0) begin print '删除失败,事物回滚' rollback transaction end else begin print '删除成功' commit transaction end
转载于:https://www.cnblogs.com/wlx520/p/4501970.html
SQL Server存储过程作业(三)相关推荐
- SQL Server存储过程作业(二)
阶段1:练习--统计某类型客房的入住客人人数 需求说明 使用存储过程统计在指定类型的客房入住客人的总人数 提示: 存储过程的输入参数是指定的客房类型名称 USE Hotel GO--阶段1:查询入住在 ...
- sql 查询超时已过期_监视来自SQL Server代理作业的查询超时过期消息
sql 查询超时已过期 SQL Server provides you with a good solution to automate a lot of your administrative ta ...
- 讲解SQL Server定时作业job的设置方法
如果在SQL Server 里需要定时或者每隔一段时间执行某个存储过程或3200字符以内的SQL语句时,可以用管理->SQL Server代理->作业来实现. ◆1.管理->SQL ...
- SQL Server 存储过程中使用raiserror抛出异常
转自(SQL Server 存储过程中使用raiserror抛出异常 ) 一 系统预定义错误代码 SQL Server 有3831个预定义错误代码,由master.dbo.sysmessages 表维 ...
- 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇 http://www.cnblogs.com/lyhabc/p/4678330.html 第二篇 http: ...
- SQL Server 存储过程定时转存数据
SQL Server 存储过程,定时将临时表中今天之前的数据转存到对应年月的历史表中,执行如下语句创建存储过程,然后创建SQL Server 代理作业,计划设置为每天定时执行 USE [MYDATAB ...
- sql server存储过程基本写法
sql server存储过程的优点 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度. 2.当对数据 ...
- SQL Server存储过程输入参数使用表值
在2008之前如果我们想要将表作为输入参数传递给SQL Server存储过程使比较困难的,可能需要很多的逻辑处理将这些表数据作为字符串或者XML传入. 在2008中提供了表值参数.使用表值参数,可以不 ...
- SQL Server存储过程里全库查找引用的数据库对象(表、存储过程等)
SQL Server存储过程全库匹配数据库对象(表.存储过程等) 简介 可以通过自定义存储过程sp_eachdb来遍历每个数据库然后结合sys.objects 关联sys.sql_modules后的d ...
- SQL server 存储过程的建立和调用
SQL server 存储过程的建立和调用 存储过程的建立和调用 --1.1准备测试需要的数据库:test,数据表:物料表,采购表 if not exists (select * from maste ...
最新文章
- 基于PHP的图片共享网站设计,基于PHP实现的WEB图片共享系统(SQL数据库),毕业论文设计...
- python 知识点怎么办_在Python中处理日期和时间的基本知识点整理汇总
- 2018 美团、腾讯、头条、蔚来 社招面试随谈
- 微信小程序API之map
- makefile编写---:= ?= += =的区别
- webpack在内存生成html,Vue学习之Webpack基本使用小结(十三)
- 高速公路坐标高程计算软件3.3版本发布
- G-Dezender批量解密
- kux2mp4(优酷kux转换为mp4软件) v2021
- GEOMETRIC APPLICATIONS OF BSTS
- Zotero安装与同步配置(PC+ipad双平台)
- JetBrain的哪款产品能够编写C++和C的代码啊?
- python用于cad_使用Python读取AutoCAD DXF文档
- python 散点图 置信区间_python matplotlib – 等高线图 – 置信区间
- 反射机制-Reflected
- 《现代操作系统》读书笔记之——进程间通信
- java-net-php-python-jsp房屋出租网站-视频演示计算机毕业设计程序
- harbor仓库部署
- jQuery中的DOM操作
- 基于FPGA的VGA显示图片
热门文章
- Node.js nvshens图片批量下载爬虫 1.00
- MySQL配置文件my.cnf参数优化和中文详解
- 清除zencart分类页多页后面的disp_order sort字符串的方法
- 【转】WF4.0实战系列索引
- svn在linux下的使用(svn命令行)删除 新增 添加 提交 状态查询 恢...
- 学技术的不能自废武功
- javascript的parseInt函数(转)
- Android ProGuard 还原堆栈
- element ui 表格拆分表格_python拆分表格数据
- [FJOI2014] 石子合并问题