程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> MSSQL事務的存儲進程

MSSQL事務的存儲進程

編輯:MSSQL

MSSQL事務的存儲進程。本站提示廣大學習愛好者:(MSSQL事務的存儲進程)文章只能為提供參考,不一定能成為您想要的結果。以下是MSSQL事務的存儲進程正文


在酒店治理體系開辟中,我們會創立房間表和房間類型表(房型表)這兩個表,以下圖所示:

房型表:RoomType

      
    
房間表:Room

 

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

剖析這兩個表,我們會發明如許一個成績:在房間表和房型表治理中,當我們修正或許刪除一個RoomType表,對應的Room表我們也要做修正和刪除,那末我們怎樣處理這個成績呢?起首可以在數據庫中設置級聯刪除,或許應用觸發器也能夠處理、、、這些辦法都有必定的弊病,在現實開辟中,我們會采用應用事務來處理這個成績,這類辦法簡略並且開辟效力高,輕易保護。

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

思緒:在刪除RooType的時刻,我們經由過程RoomType.rTypeId=Room.rTypeId找到Room中存在該房型的記載,把也它刪失落。

解釋:刪除不是把整筆記錄從數據庫刪除,是將數據標識改成1,0是代表未刪除。

上面引見刪除的存儲進程:

代碼:

 ALTER procedure [dbo].[usp_DelToomType] --創立刪除房型的存儲進程
 @rTypeId int --房型參數
 as
 begin transaction --開端事務
  declare @error int --界說一個變量標識毛病號
  update RoomType set rTypeIsDel=1 where rTypeId=@rTypeId --依據前提刪除房型,rTypeIsDel=1標識刪除,0標識未刪除
  set @error+=@@ERROR
  if(@error<>0) --不等於0解釋這一句履行湧現毛病
  rollback transaction --事務回滾
  update Room set roomIsDel=1 where rTypeId=@rTypeId --依據前提刪除房間
  set @error+=@@ERROR 
  if(@error<>0) --不等於0解釋這一句履行湧現毛病
  rollback transaction --事務回滾
 else 
   commit transaction --提交事務

最初,數據層直接挪用存儲進程的辦法便可完成刪除房型的同時把存在該房型的房間也刪除。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved