Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Level Transaksi dan Prosedur Tersimpan SQL Server 2005

Prosedur tersimpan akan menggunakan isolasi transaksi yang berlaku saat dipanggil.

Jika prosedur tersimpan itu sendiri menetapkan tingkat isolasi eksplisit, ini akan diatur ulang saat prosedur tersimpan keluar.

(Sunting:Baru saja diperiksa dan ini bertentangan dengan apa yang dikatakan BOL "... itu tetap disetel untuk koneksi itu sampai diubah secara eksplisit" tetapi dapat dilihat dari bawah)

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

Hasil

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. Bergabunglah dengan tabel untuk dirinya sendiri

  2. SQL Server:nama objek tidak valid dalam eksekusi kueri

  3. SQL Server:klausa GROUP BY untuk mendapatkan nilai yang dipisahkan koma

  4. Menggunakan Dapper dengan Tipe Spasial SQL sebagai parameter

  5. Bagaimana cara cepat mengedit nilai dalam tabel di SQL Server Management Studio?