sp_getbindtoken (T-SQL)
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 Kumpulan Hasil Aktif (MARS).
Sintaks
sp_getbindtoken [@out_token =] 'return_value' OUTPUT
Argumen
[@out_token= ]'return_value'
Adalah token yang digunakan untuk mengikat sesi. return_value adalah varchar(255) tanpa default.
Mengembalikan Nilai Kode
Tidak
Tataan Hasil
Tidak
Keterangan
sp_getbindtoken akan mengembalikan token yang valid hanya ketika prosedur tersimpan dijalankan di dalam transaksi aktif. Jika tidak, Mesin Database akan mengembalikan pesan kesalahan. Contohnya:
-- Declare a variable to hold the bind token.
-- No active transaction.
DECLARE @bind_token varchar(255);
-- Trying to get the bind token returns an error 3921.
EXECUTE sp_getbindtoken @bind_token OUTPUT;
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 varchar(255);
BEGIN TRAN;
EXECUTE sp_getbindtoken @bind_token OUTPUT;
SELECT @bind_token AS Token;
BEGIN DISTRIBUTED TRAN;
EXECUTE sp_getbindtoken @bind_token OUTPUT;
SELECT @bind_token AS Token;
Kedua SELECT
pernyataan mengembalikan token yang sama:
Token
-----
PKb'gN5<9aGEedk_16>8U=5---/5G=--
(1 row(s_) affected)
Token
-----
PKb'gN5<9aGEedk_16>8U=5---/5G=--
(1 row(s_) affected)
Token ikatan 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 berjalan 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 varchar(255);
BEGIN TRAN;
EXECUTE sp_getbindtoken @bind_token OUTPUT;
SELECT @bind_token AS Token;
Berikut adalah hasil yang ditetapkan.
Token
----------------------------------------------------------
\0]---5^PJK51bP<1F<-7U-]ANZ
Lihat Juga
sp_bindsession (T-SQL)
Prosedur Tersimpan Sistem (Transact-SQL)
srv_getbindtoken (EXTENDED Stored Procedure API)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk