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