Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Mengembalikan pengidentifikasi unik untuk transaksi. Pengidentifikasi unik ini adalah string yang digunakan untuk mengikat sesi menggunakan sp_bindsession.
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_getbindtoken [ @out_token = ] 'out_token' OUTPUT
[ ; ]
Argumen
Penting
Argumen untuk prosedur tersimpan yang diperluas harus dimasukkan dalam urutan tertentu seperti yang dijelaskan di bagian Sintaks. Jika parameter dimasukkan di luar urutan, pesan kesalahan terjadi.
[ @out_token = ] 'out_token'
Token yang digunakan untuk mengikat sesi. @out_token adalah varchar(255), tanpa default.
Mengembalikan nilai kode
Tidak ada.
Tataan hasil
Tidak ada.
Keterangan
sp_getbindtoken mengembalikan token yang valid hanya ketika prosedur tersimpan dijalankan di dalam transaksi aktif. Jika tidak, Mesin Database mengembalikan pesan kesalahan. Contohnya:
-- Declare a variable to hold the bind token.
-- No active transaction.
DECLARE @bind_token AS VARCHAR (255);
-- Trying to get the bind token returns an error 3921.
EXECUTE sp_getbindtoken @bind_token OUTPUT;
Berikut set hasilnya.
Server: Msg 3921, Level 16, State 1, Procedure sp_getbindtoken, Line 4
Cannot get a transaction token if there is no transaction active.
Reissue the statement after a transaction has been started.
Ketika sp_getbindtoken digunakan untuk mendaftarkan koneksi transaksi terdistribusi di dalam transaksi terbuka, SQL Server mengembalikan token yang sama. Contohnya:
USE AdventureWorks2022;
GO
DECLARE @bind_token AS VARCHAR (255);
BEGIN TRANSACTION;
EXECUTE sp_getbindtoken @bind_token OUTPUT;
SELECT @bind_token AS Token1;
BEGIN DISTRIBUTED TRANSACTION;
EXECUTE sp_getbindtoken @bind_token OUTPUT;
SELECT @bind_token AS Token2;
--COMMIT TRANSACTION;
--COMMIT TRANSACTION;
Kedua SELECT pernyataan mengembalikan token yang sama:
Token1
------
PKb'gN5<9aGEedk_16>8U=5---/5G=--
Token2
------
PKb'gN5<9aGEedk_16>8U=5---/5G=--
Token ikat dapat digunakan dengan sp_bindsession untuk mengikat sesi baru ke transaksi yang sama. Token ikatan hanya valid secara lokal di dalam setiap instans Mesin Database dan tidak dapat dibagikan di beberapa instans.
Untuk mendapatkan dan meneruskan token ikatan, Anda harus menjalankan sp_getbindtoken sebelum menjalankan sp_bindsession untuk berbagi ruang kunci yang sama. Jika Anda mendapatkan token ikatan, sp_bindsession jalankan dengan benar.
Catatan
Kami menyarankan agar Anda menggunakan antarmuka pemrograman aplikasi (API) srv_getbindtoken Open Data Services untuk mendapatkan token ikat yang akan digunakan dari prosedur tersimpan yang diperluas.
Izin
Memerlukan keanggotaan dalam peran publik .
Contoh
Contoh berikut mendapatkan token ikatan dan menampilkan nama token ikat.
DECLARE @bind_token AS VARCHAR (255);
BEGIN TRANSACTION;
EXECUTE sp_getbindtoken @bind_token OUTPUT;
SELECT @bind_token AS Token;
--COMMIT TRANSACTION;
Berikut set hasilnya.
Token
-----
\0]---5^PJK51bP<1F<-7U-]ANZ