主頁(yè) > 知識(shí)庫(kù) > MSSQL事務(wù)的存儲(chǔ)過(guò)程

MSSQL事務(wù)的存儲(chǔ)過(guò)程

熱門標(biāo)簽:怎樣把地圖標(biāo)注導(dǎo)入公司地址 洛陽(yáng)外呼系統(tǒng)平臺(tái) 廣州人工電銷機(jī)器人費(fèi)用 如何在地圖標(biāo)注自己店鋪 寧波人工外呼系統(tǒng)有效果嗎 真人語(yǔ)音電銷機(jī)器人 地圖標(biāo)注一個(gè)圓圈怎么用 電銷機(jī)器人被曝光 400外呼系統(tǒng)合法

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

房型表:RoomType

      
    
房間表:Room

 

首先這兩個(gè)表的關(guān)系:Room是從表,RoomType是主表,兩表有主外鍵關(guān)系,RoomType.rTypeId=Room.rTypeId

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

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

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

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

下面介紹刪除的存儲(chǔ)過(guò)程:

代碼:

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

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

您可能感興趣的文章:
  • MSSQL 事務(wù)說(shuō)明
  • c#實(shí)現(xiàn)sqlserver事務(wù)處理示例
  • 使用Sqlserver事務(wù)發(fā)布實(shí)現(xiàn)數(shù)據(jù)同步(sql2008)
  • SQLServer分布式事務(wù)問(wèn)題
  • Sqlserver 存儲(chǔ)過(guò)程中結(jié)合事務(wù)的代碼
  • Transactional replication(事務(wù)復(fù)制)詳解之如何跳過(guò)一個(gè)事務(wù)

標(biāo)簽:晉中 石家莊 東營(yíng) 咸寧 北海 珠海 煙臺(tái) 南昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MSSQL事務(wù)的存儲(chǔ)過(guò)程》,本文關(guān)鍵詞  MSSQL,事務(wù),的,存儲(chǔ),過(guò)程,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MSSQL事務(wù)的存儲(chǔ)過(guò)程》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于MSSQL事務(wù)的存儲(chǔ)過(guò)程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章