Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server 2005 Ниво на транзакция и съхранени процедури

Съхранената процедура ще използва изолацията на транзакцията в сила, когато бъде извикана.

Ако самата съхранена процедура зададе изрично ниво на изолация, това ще бъде нулирано, когато съхранената процедура излезе.

(Редактиране:Току-що проверих и това е противно на казаното от BOL "... остава зададено за тази връзка, докато не бъде изрично променено", но може да се види отдолу)

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразуване на varchar в десетичен в sql сървър 2008

  2. Синтаксис за стойността по подразбиране за дефиниран от потребителя тип като таблица

  3. как да запазите SQL съхранени процедури в .sql файлове чрез партида

  4. Добавяне на колона между две други колони в SQL сървъра

  5. SQL Server на Linux