sql >> Databáze >  >> RDS >> Sqlserver

SQL Server 2005 Úroveň transakcí a uložené procedury

Uložená procedura použije při volání platnou izolaci transakce.

Pokud uložená procedura sama nastaví explicitní úroveň izolace, tato bude resetována při ukončení uložené procedury.

(Upravit:Právě zaškrtnuto a toto je v rozporu s tím, co říká BOL "... zůstane nastaveno pro toto připojení, dokud nebude explicitně změněno", ale je vidět níže)

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

Výsledky

ReadUncomitted
Enter: SetRCTransLevel
Readcomitted
Exit: SetRCTransLevel
ReadUncomitted



  1. Import dat z MySQL pomocí Sqoop - Chyba:Žádný správce pro spojovací řetězec

  2. TypeORM QueryRunner Vyberte odlišné

  3. Resetovat kumulativní součet?

  4. MySQL:Udělte **všechna** oprávnění k databázi