久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

SQL Server 2005 事務級和存儲過程

SQL Server 2005 Transaction Level and Stored Procedures(SQL Server 2005 事務級和存儲過程)
本文介紹了SQL Server 2005 事務級和存儲過程的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

如果我使用命令 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 然后在同一上下文中使用 EXEC storedProcedureName 執行存儲過程,該存儲過程是否會使用該事務之前聲明的級別還是將使用默認級別?

If I use the command SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED and then execute a stored procedure using the EXEC storedProcedureName on the same context, will the stored procedure use the transaction level stated previously or will use a default one?

如果我想強制每個存儲過程在事務級別使用,我是否必須在代碼頂部包含相同的語句(SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED)?

If I want to force every stored procedure to use on transaction level do I have to include at the top of the code the same statement (SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED)?

PS.:該系統建立在 .NET 2.0 和專有第三方產品之上,但存在局限性,因此需要這些變通方法.

PS.: the system is built on top of .NET 2.0 and proprietary third party products with limitations, hence the need of these workarounds.

推薦答案

存儲過程將使用調用時生效的事務隔離.

The stored procedure will use the transaction isolation in effect when called.

如果存儲過程本身設置了一個明確的隔離級別,這將在存儲過程退出時重置.

If the stored procedure itself sets an explicit isolation level this will be reset when the stored procedure exits.

(剛剛檢查過,這是與 BOL 所說的相反...它保持為該連接設置,直到它被明確更改"但可以從下面看到)

( Just checked and this is contrary to what BOL says "... it remains set for that connection until it is explicitly changed" but can be seen from the below)

CREATE PROC CheckTransLevel
AS
DECLARE @Result varchar(20)

SELECT @Result = CASE transaction_isolation_level 
                        WHEN 0 THEN 'Unspecified' 
                        WHEN 1 THEN 'ReadUncomitted' 
                        WHEN 2 THEN 'Readcomitted' 
                        WHEN 3 THEN 'Repeatable' 
                        WHEN 4 THEN 'Serializable' 
                        WHEN 5 THEN 'Snapshot' 
                  END 
FROM sys.dm_exec_sessions 
WHERE session_id = @@SPID

PRINT @Result

GO
CREATE PROC SetRCTransLevel
AS
PRINT 'Enter: SetRCTransLevel'
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
EXEC CheckTransLevel
PRINT 'Exit: SetRCTransLevel'
GO

SET NOCOUNT ON

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

EXEC CheckTransLevel

EXEC SetRCTransLevel

EXEC CheckTransLevel

結果

ReadUncomitted
Enter: SetRCTransLevel
Readcomitted
Exit: SetRCTransLevel
ReadUncomitted

這篇關于SQL Server 2005 事務級和存儲過程的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Should I call Parameters.Clear when reusing a SqlCommand with a transation?(重用帶有事務的 SqlCommand 時,我應該調用 Parameters.Clear 嗎?)
Does SqlTransaction need to have Dispose called?(SqlTransaction 是否需要調用 Dispose?)
Reason for System.Transactions.TransactionInDoubtException(System.Transactions.TransactionInDoubtException 的原因)
How do I use TransactionScope with MySql and Entity Framework? (getting Multiple simultaneous connections...are not currently supported error)(如何將 TransactionScope 與 MySql 和實體框架一起使用?(獲取多個同時連接...目前不
Why doesn#39;t TransactionScope work with Entity Framework?(為什么 TransactionScope 不適用于實體框架?)
How to dispose TransactionScope in cancelable async/await?(如何在可取消的 async/await 中處理 TransactionScope?)
主站蜘蛛池模板: 亚洲综合色丁香婷婷六月图片 | 国产精品日韩欧美一区二区三区 | 免费黄色片在线观看 | 久久激情网 | 国产精品成人一区二区三区 | 国产精品久久久久久久久久久久午夜片 | 国精产品一品二品国精在线观看 | 正在播放国产精品 | 91精品久久久久久久久 | 国产一区视频在线 | 久久成人国产 | 国产一区二区三区四区五区加勒比 | 日韩三级 | 欧美五月婷婷 | 亚洲小视频 | 国产精品久久久久久久久久免费看 | 久久久久亚洲视频 | 欧美综合一区二区 | 婷婷丁香综合网 | 欧美综合一区 | 日本不卡一区二区三区 | 久久精品一 | 黄a网站 | 日韩精品一区二区三区在线播放 | 国产亚洲精品久久情网 | 天天插日日操 | 日韩亚洲一区二区 | 精产国产伦理一二三区 | 国产精品久久片 | 丝袜美腿一区二区三区动态图 | 91视频.com | 污污的网站在线观看 | av免费看片 | 操久久 | 国产精品成人av | 久久精品国产精品青草 | 中文字幕乱码一区二区三区 | 欧美精品久久久久久久久老牛影院 | 成人超碰 | 九色www | 午夜免费视频 |