Udostępnij za pośrednictwem


sp_getbindtoken (języka Transact-SQL)

Zwraca wartość identyfikator unikatowy dla transakcji.ciąg używany do powiązania sesji przy użyciu jest to identyfikator unikatowy sp_bindsession.

Ważna informacjaWażne:

Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.Użyj wielu zestawów wyników Active (MARS) lub transakcji rozproszonych.Aby uzyskać więcej informacji, zobacz Za pomocą wielu aktywnych wynik ustawia (MARS) lub Transakcji rozproszonych (aparat bazy danych).

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

sp_getbindtoken [@out_token =] 'return_value' OUTPUT 

Argumenty

  • [@out_token= ]'return_value'
    Jest tokenem używania powiązać sesji.return_valuejest varchar(255)z nie domyślnych.

Wartości kodów powrotnych

Brak

Zestawy wyników

Brak

Uwagi

W SQL Server 2000 i nowszych, sp_getbindtoken zwróci prawidłowym tokenem tylko po wykonaniu procedura składowana wewnątrz aktywnych transakcji.W przeciwnym razie Aparat baz danych zwróci komunikat o błędzie.Na przykład:

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

Ostrzeżenie

W SQL Server 7.0, sp_getbindtoken zwraca prawidłowym tokenem nawet po wykonaniu procedura składowana poza aktywnych transakcji.Poprzedni przykład działa w SQL Server 7.0, ale nie w SQL Server 2000 lub nowszej.

Gdy sp_getbindtoken używane pozyskanie połączenia transakcja rozproszona wewnątrz otwartej transakcji, SQL Server 2000 lub później zwraca token ten sam.Na przykład:

USE AdventureWorks2008R2;
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;

Obie SELECT instrukcji zwrócić token ten sam:

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 powiązania mogą być używane z sp_bindsession powiązać nowych sesji do tej samej transakcji.Bind token jest prawidłowa tylko lokalnie wewnątrz każdego wystąpienie w Aparat baz danych i nie może być współużytkowane przez wiele wystąpień.

Aby uzyskać i przekazać bind token, należy uruchomić sp_getbindtoken przed wykonaniem sp_bindsession do udostępniania tego samego miejsca blokada .Jeśli uzyskanie tokenu bind sp_bindsession działa poprawnie.

Ostrzeżenie

Firma Microsoft zaleca korzystanie z srv_getbindtoken otwartych usług danych interfejs programowania aplikacji (API) do uzyskania tokenu bind do używania z rozszerzona procedura składowana.

Uprawnienia

Wymaga członkostwa w public rolę.

Przykłady

Poniższy przykład uzyskuje bind token i wyświetla nazwę token bind.

DECLARE @bind_token varchar(255);
BEGIN TRAN;
EXECUTE sp_getbindtoken @bind_token OUTPUT;
SELECT @bind_token AS Token;

Oto zestaw wyników.

Token

----------------------------------------------------------

\0]---5^PJK51bP<1F<-7U-]ANZ