国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL Server存儲(chǔ)過程作業(yè)(三)

2024-08-31 00:54:27
字體:
供稿:網(wǎng)友
SQL Server存儲(chǔ)過程作業(yè)(三)階段4:練習(xí)——插入入住客人記錄需求說明使用存儲(chǔ)過程將入住客人信息插入客人信息表中,要求:檢查身份證號(hào)必須是18個(gè)字符組成押金的默認(rèn)值為1000元如果客人記錄插入成功,輸出客人流水號(hào);否則輸出出錯(cuò)信息提示:客人的信息作為存儲(chǔ)過程的輸入?yún)?shù)客人流水號(hào)作為存儲(chǔ)過程的輸出參數(shù)利用事務(wù)確保數(shù)據(jù)完整性客人記錄插入客人信息表修改客人入住房間的人數(shù)
--階段4:添加一個(gè)入住客人的信息IF EXISTS(SELECT * FROM sysobjects WHERE name='usp_insertGuestRecord')  DROP PROC usp_insertGuestRecordGOCREATE procedure usp_insertGuestRecord    @GuestID int OUTPUT,                ---客戶流水號(hào)    @identityID varchar(50),            ---身份證號(hào)    @guestName nchar(20),                ---客戶姓名    @roomID int,                        ---房間號(hào)    @ResideDate datetime,                ---入住時(shí)間    @deposit decimal(18,2) = 1000        ---押金AS    SET @GuestID = -1    IF (@identityID IS NULL OR LEN(@identityID) <> 18)        return -1    BEGIN TRANSACTION    INSERT INTO GuestRecord    (        IdentityID,        GuestName,        RoomID,        ResideID,        ResideDate,        Deposit)    VALUES    (        @identityID,        @guestName,        @roomID,        1,        @ResideDate,        @deposit    )    IF (@@ERROR <> 0)    BEGIN        ROLLBACK TRANSACTION        return 'false'    END    DECLARE @RoomStateID int    SELECT @RoomStateID=RoomStateID FROM RoomState    WHERE RoomStateName = '已入住'    ---客房狀態(tài)變?yōu)?ldquo;入住”,客人數(shù)量增1    Update Room set RoomStateID =@RoomStateID,GuestNum=GuestNum+1     WHERE RoomID = @roomID    IF (@@ERROR <> 0)    BEGIN        ROLLBACK TRANSACTION        return -1    END    COMMIT TRANSACTION    SET @GuestID=@@IDENTITY    return 0GO--調(diào)用存儲(chǔ)過程DECLARE @identityID varchar(50)            ---身份證號(hào)DECLARE @guestName nchar(20)            ---客戶姓名DECLARE @roomID int                        ---房間號(hào)DECLARE @deposit decimal(18,2)            ---押金DECLARE @ResideDate datetime            ---入住時(shí)間DECLARE @Result varchar(20)DECLARE @GuestID intSET @identityID = '11010119950506112x'SET @guestName = '風(fēng)無痕'SET @roomID = 1008SET @deposit = 1000SET @ResideDate = GETDATE()EXEC @Result = usp_insertGuestRecord @GuestID OUTPUT,@identityID,@guestName,                                     @roomID,@ResideDate,@deposit IF (@Result = 0)BEGIN  PRINT '插入客人記錄操作成功'   PRINT '客人編號(hào)是' + CAST(@GuestID AS varchar)ENDELSE  PRINT '插入客人記錄操作失敗' 
階段5:練習(xí)——使用視圖查詢正在維修的房間信息創(chuàng)建視圖查詢維修房間的信息,要求:要有房間號(hào),房間名稱,房間狀態(tài)提示:連接房間客房信息表客房狀態(tài)表客房類型表查詢
--查詢在維修狀態(tài)的房間信息create view  RoomStateNameas    select Room.RoomID,RoomType.TypeName,    RoomState.RoomStateName     from Room    inner  join RoomType on RoomType.TypeID=Room.RoomTypeID    inner join RoomState on RoomState.RoomStateID=Room.RoomStateID    where RoomState.RoomStateName='維修'goselect * from RoomStateName
階段6:練習(xí)——使用事物將已經(jīng)退房的客戶信息刪除:提示:首先將已經(jīng)退房的客戶信息放到歷史表里面(historyGuest)在將客人信息表里面的數(shù)據(jù)刪除(GuestRecord)判斷客人是否退房可以判斷離開時(shí)間是否為空,不為空即是退房
--使用事物刪除room表里面已經(jīng)退房的旅客begin transaction declare @errorNum  int --錯(cuò)誤的號(hào)碼set @errorNum=0select *  into historyGuest from  GuestRecordwhere LeaveDate is not nullset @errorNum=@errorNum+@@ERRORdelete  from  GuestRecordwhere LeaveDate is not nullset @errorNum=@errorNum+@@ERRORif(@errorNum<>0)beginprint '刪除失敗,事物回滾'rollback transactionendelsebeginprint '刪除成功'commit transactionend


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 旬邑县| 兴义市| 闽侯县| 瓮安县| 临汾市| 浦城县| 兴宁市| 遵义市| 衡水市| 马龙县| 重庆市| 福建省| 沂水县| 西乌珠穆沁旗| 黑山县| 丹棱县| 右玉县| 方山县| 商丘市| 来凤县| 章丘市| 老河口市| 延长县| 天全县| 时尚| 海南省| 大冶市| 满城县| 龙山县| 敦煌市| 武陟县| 甘德县| 汾西县| 余姚市| 临清市| 禹州市| 甘孜县| 江都市| 若羌县| 永丰县| 罗城|