sp_bindsession (Transact-SQL)
Gilt für: SQL Server
Bindet oder hebt eine Sitzung an andere Sitzungen in derselben Instanz des SQL Server-Datenbank-Engine. Bindungssitzungen ermöglichen es zwei oder mehr Sitzungen, an derselben Transaktion teilzunehmen und Sperren freizugeben, bis ein ROLLBACK TRANSACTION
oder COMMIT TRANSACTION
mehrere Sitzungen ausgestellt werden.
Wichtig
Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen mehrere aktive Resultsets (MARS) oder verteilte Transaktionen. Weitere Informationen finden Sie unter Verwenden mehrerer aktiver Resultsets (MARS) in SQL Server Native Client.
Transact-SQL-Syntaxkonventionen
Syntax
sp_bindsession { 'bind_token' | NULL }
Argumente
"bind_token"
Das Token, das die transaktion identifiziert, die ursprünglich mithilfe sp_getbindtoken
oder der Open Data Services-Funktion srv_getbindtoken
abgerufen wurde. bind_token ist varchar(255).
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
Zwei gebundene Sitzungen verwenden nur eine Transaktion und Sperren gemeinsam. Jede Sitzung behält ihre eigene Isolationsstufe bei, und das Festlegen einer neuen Isolationsstufe für eine Sitzung wirkt sich nicht auf die Isolationsstufe der anderen Sitzung aus. Jede Sitzung bleibt durch sein Sicherheitskonto identifiziert und kann nur auf die Datenbankressourcen zugreifen, für die das Konto die Berechtigung erteilt hat.
sp_bindsession
verwendet ein Bindungstoken zum Binden von zwei oder mehr vorhandenen Clientsitzungen. Diese Clientsitzungen müssen sich in derselben Instanz des Datenbank-Engine befinden, aus der das Bindungstoken abgerufen wurde. Eine Sitzung ist ein Client, der einen Befehl ausführt. Gebundene Datenbanksitzungen verwenden einen Transaktions- und Sperrbereich gemeinsam.
Ein Bindungstoken, das von einer Instanz des Datenbank-Engine abgerufen wird, kann nicht für eine Clientsitzung verwendet werden, die mit einer anderen Instanz verbunden ist, auch für DTC-Transaktionen. Ein Bindungstoken ist nur lokal innerhalb jeder Instanz gültig und kann nicht für mehrere Instanzen freigegeben werden. Um Clientsitzungen an eine andere Instanz des Datenbank-Engine zu binden, müssen Sie ein anderes Bindungstoken durch Ausführen sp_getbindtoken
abrufen.
sp_bindsession
schlägt mit einem Fehler fehl, wenn es ein nicht aktives Token verwendet.
Die Verknüpfung von einer Sitzung wird entweder mithilfe der Verwendung sp_bindsession
ohne Angabe von bind_token oder durch Übergeben NULL
von bind_token entfernt.
Berechtigungen
Erfordert die Mitgliedschaft in der public -Rolle.
Beispiele
Im folgenden Beispiel wird das angegebene Bindungstoken an die aktuelle Sitzung gebunden.
Hinweis
Das im Beispiel gezeigte Bindungstoken wurde durch Ausführen sp_getbindtoken
vor der Ausführung sp_bindsession
abgerufen.
USE master;
GO
EXEC sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ';
GO