Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server-
Retourneert een unieke id voor de transactie. Deze unieke id is een tekenreeks die wordt gebruikt om sessies te binden met behulp van sp_bindsession
.
Belangrijk
Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. Gebruik in plaats daarvan meerdere actieve resultatensets (MARS) of gedistribueerde transacties. Zie Using Multiple Active Result Sets (MARS) in SQL Server Native Clientvoor meer informatie.
Transact-SQL syntaxisconventies
Syntaxis
sp_getbindtoken [ @out_token = ] 'out_token' OUTPUT
[ ; ]
Argumenten
Belangrijk
Argumenten voor uitgebreide opgeslagen procedures moeten worden ingevoerd in de specifieke volgorde, zoals beschreven in de sectie Syntaxis. Als de parameters niet in de volgorde zijn ingevoerd, treedt er een foutbericht op.
[ @out_token = ] 'out_token'
Het token dat moet worden gebruikt om sessies te binden. @out_token is varchar(255), zonder standaardinstelling.
Codewaarden retourneren
Geen.
Resultatenset
Geen.
Opmerkingen
sp_getbindtoken
retourneert alleen een geldig token wanneer de opgeslagen procedure wordt uitgevoerd binnen een actieve transactie. Anders retourneert de database-engine een foutbericht. Bijvoorbeeld:
-- 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;
Dit is de resultatenset.
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.
Wanneer sp_getbindtoken
wordt gebruikt om een gedistribueerde transactieverbinding in te schakelen binnen een geopende transactie, retourneert SQL Server hetzelfde token. Bijvoorbeeld:
USE AdventureWorks2022;
GO
DECLARE @bind_token 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;
Beide SELECT
-instructies retourneren hetzelfde token:
Token1
------
PKb'gN5<9aGEedk_16>8U=5---/5G=--
Token2
------
PKb'gN5<9aGEedk_16>8U=5---/5G=--
Het bindingstoken kan worden gebruikt met sp_bindsession
om nieuwe sessies aan dezelfde transactie te binden. Het bindingstoken is alleen lokaal geldig binnen elk exemplaar van de database-engine en kan niet worden gedeeld tussen meerdere exemplaren.
Als u een bindingstoken wilt verkrijgen en doorgeven, moet u sp_getbindtoken
uitvoeren voordat u sp_bindsession
uitvoert voor het delen van dezelfde vergrendelingsruimte. Als u een bindingstoken verkrijgt, wordt sp_bindsession
correct uitgevoerd.
Notitie
U wordt aangeraden de srv_getbindtoken Open Data Services Application Programming Interface (API) te gebruiken om een bindingstoken te verkrijgen dat moet worden gebruikt via een uitgebreide opgeslagen procedure.
Machtigingen
Vereist lidmaatschap van de openbare rol.
Voorbeelden
In het volgende voorbeeld wordt een bindingstoken opgehaald en wordt de naam van het bindingstoken weergegeven.
DECLARE @bind_token VARCHAR(255);
BEGIN TRANSACTION;
EXECUTE sp_getbindtoken @bind_token OUTPUT;
SELECT @bind_token AS Token;
--COMMIT TRANSACTION;
Dit is de resultatenset.
Token
-----
\0]---5^PJK51bP<1F<-7U-]ANZ