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

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

MSSQL事務的存儲過程

2024-08-31 01:02:17
字體:
供稿:網(wǎng)友
這篇文章主要介紹了MSSQL事務的存儲過程,需要的朋友可以參考下
 
 

在酒店管理系統(tǒng)開發(fā)中,我們會創(chuàng)建房間表和房間類型表(房型表)這兩個表,如下圖所示:

房型表:RoomType

MSSQL事務的存儲過程      
     
房間表:Room

MSSQL事務的存儲過程

首先這兩個表的關系:Room是從表,RoomType是主表,兩表有主外鍵關系,RoomType.rTypeId=Room.rTypeId

分析這兩個表,我們會發(fā)現(xiàn)這樣一個問題:在房間表和房型表管理中,當我們修改或者刪除一個RoomType表,對應的Room表我們也要做修改和刪除,那么我們怎么解決這個問題呢?首先可以在數(shù)據(jù)庫中設置級聯(lián)刪除,或者利用觸發(fā)器也可以解決、、、這些方法都有一定的弊端,在實際開發(fā)中,我們會采取使用事務來解決這個問題,這種方法簡單而且開發(fā)效率高,容易維護。

要求:在刪除RoomType的同時把Room表中存在該房型的也刪除.

思路:在刪除RooType的時候,我們通過RoomType.rTypeId=Room.rTypeId找到Room中存在該房型的記錄,把也它刪掉。

說明:刪除不是把整條記錄從數(shù)據(jù)庫刪除,是將數(shù)據(jù)標識改為1,0是代表未刪除。

下面介紹刪除的存儲過程:

代碼:

 ALTER procedure [dbo].[usp_DelToomType] --創(chuàng)建刪除房型的存儲過程 @rTypeId int --房型參數(shù) as begin transaction --開始事務  declare @error int --定義一個變量標識錯誤號  update RoomType set rTypeIsDel=1 where rTypeId=@rTypeId --根據(jù)條件刪除房型,rTypeIsDel=1標識刪除,0標識未刪除  set @error+=@@ERROR  if(@error<>0) --不等于0說明這一句執(zhí)行出現(xiàn)錯誤  rollback transaction --事務回滾  update Room set roomIsDel=1 where rTypeId=@rTypeId --根據(jù)條件刪除房間  set @error+=@@ERROR   if(@error<>0) --不等于0說明這一句執(zhí)行出現(xiàn)錯誤  rollback transaction --事務回滾 else    commit transaction --提交事務

最后,數(shù)據(jù)層直接調(diào)用存儲過程的方法即可完成刪除房型的同時把存在該房型的房間也刪除。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 长兴县| 泸西县| 灵台县| 招远市| 遂宁市| 平山县| 兴业县| 晋江市| 凤城市| 逊克县| 大石桥市| 丘北县| 三原县| 资溪县| 兴仁县| 武穴市| 庄浪县| 台中市| 鄂伦春自治旗| 西吉县| 广安市| 东源县| 泸州市| 镇康县| 芦山县| 清水河县| 政和县| 肇州县| 嘉义市| 旬邑县| 新泰市| 深州市| 巴青县| 卢龙县| 瑞金市| 永春县| 华池县| 永胜县| 阿鲁科尔沁旗| 鄂州市| 绍兴市|