sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server 2005 Transaktionsniveau og lagrede procedurer

Den lagrede procedure vil bruge den transaktionsisolering, der er gældende, når den kaldes.

Hvis den lagrede procedure selv indstiller et eksplicit isolationsniveau, nulstilles dette, når den lagrede procedure afsluttes.

(Edit:Har lige tjekket, og dette er i modsætning til hvad BOL siger "... den forbliver indstillet til den forbindelse, indtil den eksplicit ændres", men kan ses fra nedenstående)

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

Resultater

ReadUncomitted
Enter: SetRCTransLevel
Readcomitted
Exit: SetRCTransLevel
ReadUncomitted



  1. MySQL SUM json-værdier grupperet efter json-nøgler

  2. pg gem sslmode=verify-full, hvor skal certifikater placeres?

  3. Opret MySQL-database med .SQL-fil

  4. MySQL returnerer 1 billede for hvert produkt