Thủ tục được lưu trữ sẽ sử dụng cách ly giao dịch có hiệu lực khi được gọi.
Nếu bản thân thủ tục được lưu trữ đặt một mức cách ly rõ ràng, điều này sẽ được đặt lại khi thủ tục được lưu trữ thoát.
(Chỉnh sửa:Vừa được kiểm tra và điều này trái với những gì BOL nói "... nó vẫn được đặt cho kết nối đó cho đến khi nó được thay đổi rõ ràng" nhưng có thể được nhìn thấy từ bên dưới)
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
Kết quả
ReadUncomitted
Enter: SetRCTransLevel
Readcomitted
Exit: SetRCTransLevel
ReadUncomitted