Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Tworzy powiązanie sesji z innymi sesjami w tym samym wystąpieniu aparatu bazy danych programu SQL Server. Sesje powiązań umożliwiają co najmniej dwie sesje uczestnictwa w tej samej transakcji i udostępnianie blokad do momentu wystawienia ROLLBACK TRANSACTION
lub COMMIT TRANSACTION
.
Ważny
Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Zamiast tego użyj wielu aktywnych zestawów wyników (MARS) lub transakcji rozproszonych. Aby uzyskać więcej informacji, zobacz Using Multiple Active Result Sets (MARS) in SQL Server Native Client.
Transact-SQL konwencje składni
Składnia
sp_bindsession { 'bind_token' | NULL }
Argumenty
Ważny
Argumenty dla rozszerzonych procedur składowanych należy wprowadzić w określonej kolejności zgodnie z opisem w sekcji składni. Jeśli parametry są wprowadzane poza kolejnością, wystąpi komunikat o błędzie.
'bind_token'
Token, który identyfikuje transakcję pierwotnie uzyskaną przy użyciu sp_getbindtoken
lub funkcji open data services srv_getbindtoken
.
bind_token jest varchar(255).
Zwracanie wartości kodu
0
(powodzenie) lub 1
(niepowodzenie).
Uwagi
Dwie sesje, które są powiązane, współużytkują tylko transakcję i blokady. Każda sesja zachowuje własny poziom izolacji, a ustawienie nowego poziomu izolacji w jednej sesji nie wpływa na poziom izolacji drugiej sesji. Każda sesja pozostaje identyfikowana przez konto zabezpieczeń i może uzyskiwać dostęp tylko do zasobów bazy danych, do których udzielono uprawnień konta.
sp_bindsession
używa tokenu powiązania w celu powiązania co najmniej dwóch istniejących sesji klienta. Te sesje klienta muszą znajdować się w tym samym wystąpieniu aparatu bazy danych, z którego uzyskano token powiązania. Sesja to klient wykonujący polecenie. Powiązane sesje bazy danych współużytkuje transakcję i blokuje miejsce.
Token powiązania uzyskany z jednego wystąpienia aparatu bazy danych nie może być używany dla sesji klienta połączonej z innym wystąpieniem, nawet w przypadku transakcji DTC. Token powiązania jest prawidłowy tylko lokalnie w każdym wystąpieniu i nie może być współużytkowany w wielu wystąpieniach. Aby powiązać sesje klienta w innym wystąpieniu aparatu bazy danych, należy uzyskać inny token powiązania, wykonując sp_getbindtoken
.
sp_bindsession
kończy się niepowodzeniem z powodu błędu, jeśli używa tokenu, który nie jest aktywny.
Usuń powiązanie z sesji przy użyciu sp_bindsession
bez określania bind_token lub przez przekazanie NULL
w bind_token.
Uprawnienia
Wymaga członkostwa w roli publicznej.
Przykłady
Poniższy przykład wiąże określony token powiązania z bieżącą sesją.
Nuta
Token powiązania pokazany w przykładzie został uzyskany przez wykonanie sp_getbindtoken
przed wykonaniem sp_bindsession
.
USE master;
GO
EXEC sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ';
GO