sp_bindsession (T-SQL)
Berlaku untuk: SQL Server
Mengikat atau membatalkan pengikatan sesi ke sesi lain dalam instans yang sama dari Mesin Database SQL Server. Sesi pengikatan memungkinkan dua sesi atau lebih untuk berpartisipasi dalam transaksi yang sama dan berbagi kunci hingga atau ROLLBACK TRANSACTION
COMMIT TRANSACTION
dikeluarkan.
Penting
Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Gunakan Beberapa Set Hasil Aktif (MARS) atau transaksi terdistribusi sebagai gantinya. Untuk informasi selengkapnya, lihat Menggunakan Beberapa Set Hasil Aktif (MARS) di SQL Server Native Client.
Sintaks
sp_bindsession { 'bind_token' | NULL }
Argumen
'bind_token'
Token yang mengidentifikasi transaksi yang awalnya diperoleh dengan menggunakan sp_getbindtoken
atau fungsi Open Data Services srv_getbindtoken
. bind_token adalah varchar(255).
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Keterangan
Dua sesi yang terikat hanya berbagi transaksi dan kunci. Setiap sesi mempertahankan tingkat isolasinya sendiri, dan mengatur tingkat isolasi baru pada satu sesi tidak memengaruhi tingkat isolasi sesi lainnya. Setiap sesi tetap diidentifikasi oleh akun keamanannya dan hanya dapat mengakses sumber daya database tempat akun diberikan izin.
sp_bindsession
menggunakan token ikatan untuk mengikat dua atau beberapa sesi klien yang ada. Sesi klien ini harus berada pada instans Mesin Database yang sama tempat token pengikatan diperoleh. Sesi adalah klien yang menjalankan perintah. Sesi database terikat berbagi transaksi dan ruang kunci.
Token ikatan yang diperoleh dari satu instans Mesin Database tidak dapat digunakan untuk sesi klien yang terhubung ke instans lain, bahkan untuk transaksi DTC. Token ikatan hanya berlaku secara lokal di dalam setiap instans dan tidak dapat dibagikan di beberapa instans. Untuk mengikat sesi klien pada instans lain dari Mesin Database, Anda harus mendapatkan token ikatan yang berbeda dengan menjalankan sp_getbindtoken
.
sp_bindsession
gagal dengan kesalahan jika menggunakan token yang tidak aktif.
Batalkan ikatan dari sesi baik dengan menggunakan sp_bindsession
tanpa menentukan bind_token atau dengan meneruskan NULL
bind_token.
Izin
Memerlukan keanggotaan dalam peran publik .
Contoh
Contoh berikut mengikat token ikatan yang ditentukan ke sesi saat ini.
Catatan
Token ikatan yang ditunjukkan dalam contoh diperoleh dengan mengeksekusi sp_getbindtoken
sebelum mengeksekusi sp_bindsession
.
USE master;
GO
EXEC sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ';
GO