Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
A tranzakció egyedi azonosítót ad vissza. Ez az egyedi azonosító a munkamenetek sp_bindsessionhasználatával történő kötésére szolgáló sztring.
Fontos
Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását. Használjon több aktív eredményhalmazt (MARS) vagy elosztott tranzakciókat. További információ: Több aktív eredményhalmaz (MARS) használata natív SQL Server-ügyfélalkalmazásban.
Transact-SQL szintaxis konvenciói
Szintaxis
sp_getbindtoken [ @out_token = ] 'out_token' OUTPUT
[ ; ]
Érvek
Fontos
A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.
[ @out_token = ] 'out_token'
A munkamenetek kötéséhez használandó jogkivonat. @out_tokenvarchar(255), alapértelmezés nélkül.
Kódértékek visszaadása
Egyik sem.
Eredményhalmaz
Egyik sem.
Megjegyzések
sp_getbindtoken csak akkor ad vissza érvényes jogkivonatot, ha a tárolt eljárást egy aktív tranzakcióban hajtja végre. Ellenkező esetben az adatbázismotor hibaüzenetet ad vissza. Például:
-- 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;
Itt van az eredményhalmaz.
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.
Ha sp_getbindtoken egy elosztott tranzakciós kapcsolat nyílt tranzakción belüli beiktatására szolgál, az SQL Server ugyanazt a jogkivonatot adja vissza. Például:
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;
Mindkét SELECT utasítás ugyanazt a jogkivonatot adja vissza:
Token1
------
PKb'gN5<9aGEedk_16>8U=5---/5G=--
Token2
------
PKb'gN5<9aGEedk_16>8U=5---/5G=--
A kötési jogkivonat sp_bindsession használható új munkamenetek ugyanahhoz a tranzakcióhoz való kötéséhez. A kötési jogkivonat csak helyileg érvényes az adatbázismotor minden példányán belül, és nem osztható meg több példányon.
Kötési jogkivonat beszerzéséhez és átadásához sp_getbindtoken kell futtatnia, mielőtt végrehajtaná a sp_bindsession ugyanazon zárolási terület megosztásához. Ha kötési jogkivonatot szerez be, sp_bindsession megfelelően fut.
Jegyzet
Javasoljuk, hogy a srv_getbindtoken Open Data Services alkalmazásprogramozási felületével (API) szerezze be a kiterjesztett tárolt eljárásból használandó kötési jogkivonatot.
Engedélyek
A nyilvános szerepkör tagságát igényli.
Példák
Az alábbi példa beolvas egy kötési jogkivonatot, és megjeleníti a kötési jogkivonat nevét.
DECLARE @bind_token AS VARCHAR (255);
BEGIN TRANSACTION;
EXECUTE sp_getbindtoken @bind_token OUTPUT;
SELECT @bind_token AS Token;
--COMMIT TRANSACTION;
Itt van az eredményhalmaz.
Token
-----
\0]---5^PJK51bP<1F<-7U-]ANZ