Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Poziom transakcji i procedury składowane w programie SQL Server 2005

Procedura składowana użyje izolacji transakcji obowiązującej po wywołaniu.

Jeśli sama procedura składowana ustawi wyraźny poziom izolacji, zostanie on zresetowany po zakończeniu procedury składowanej.

(Edycja:właśnie sprawdzone i jest to wbrew temu, co mówi BOL „...pozostaje ustawione dla tego połączenia, dopóki nie zostanie wyraźnie zmienione”, ale można to zobaczyć poniżej)

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

Wyniki

ReadUncomitted
Enter: SetRCTransLevel
Readcomitted
Exit: SetRCTransLevel
ReadUncomitted



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie (konkatenowanie) daty i czasu w datetime

  2. Przetwarzanie zapytań wsadowych SQL (tablica wejściowa zapytań SQL)

  3. Wymagana implementacja cte dla danych hierarchicznych

  4. Co to jest ISO_year na serwerze sql

  5. Warunkowe ORDER BY w zależności od wartości kolumn