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 TRANSACTIONCOMMIT 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.

Konvensi sintaks transact-SQL

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 NULLbind_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