sp_bindsession (Transact-SQL)

Bindet eine Sitzung oder hebt die Bindung einer Sitzung mit anderen Sitzungen in derselben Instanz vom SQL Server Database Engine (Datenbankmodul) auf. Bei Sitzungsbindungen können zwei oder mehr Sitzungen an derselben Transaktion teilnehmen und freigegebene Sperren verwenden, bis eine ROLLBACK TRANSACTION- oder COMMIT TRANSACTION-Anweisung ausgegeben wird.

Wichtiger HinweisWichtig

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen Multiple Active Results Sets (MARS) oder verteilte Transaktionen. Weitere Informationen finden Sie unter Verwenden von Multiple Active Result Sets (MARS).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

sp_bindsession { 'bind_token' | NULL }

Argumente

  • ' bind_token '
    Das Token zur Identifizierung der Transaktion, die ursprünglich mit sp_getbindtoken oder der Open Data Services srv_getbindtoken-Funktion abgerufen wurde. bind_tokenist vom Datentyp varchar(255).

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

Zwei gebundene Sitzungen verwenden nur eine Transaktion und Sperren gemeinsam. Jede Sitzung behält ihre eigene Isolationsstufe. Das Festlegen einer neuen Isolationsstufe für eine Sitzung hat keine Auswirkungen auf die Isolationsstufe der anderen Sitzung. Jede Sitzung wird weiterhin über ihr Sicherheitskonto identifiziert und kann nur auf die Datenbankressourcen zugreifen, für die dem Konto Berechtigungen erteilt wurden.

sp_bindsession bindet zwei oder mehr vorhandene Clientsitzungen mithilfe eines Bindungstokens. Diese Clientsitzungen müssen zu derselben Instanz vom Database Engine (Datenbankmodul) gehören, von der der Bindungstoken erhalten wurde. Eine Sitzung ist ein Client, der einen Befehl ausführt. Gebundene Datenbanksitzungen verwenden einen Transaktions- und Sperrbereich gemeinsam.

Ein von einer Instanz vom Database Engine (Datenbankmodul) ausgegebenes Bindungstoken kann nicht für eine Clientsitzung mit einer anderen Instanz verwendet werden, auch nicht bei DTC-Transaktionen. Ein Bindungstoken ist nur lokal innerhalb einer Instanz gültig und kann nicht auf mehreren Instanzen freigegeben werden. Sie müssen durch Ausführen von sp_getbindtoken ein anderes Bindungstoken abrufen, um Clientsitzungen auf einer anderen Instanz vom Database Engine (Datenbankmodul) zu binden.

sp_bindsession schlägt fehl und zeigt einen Fehler an, wenn es ein inaktives Token verwendet.

Um eine Bindung aufzuheben, verwenden Sie sp_bindsession ohne die Angabe bind_token, oder übergeben Sie NULL in bind_token.

Berechtigungen

Erfordert die Mitgliedschaft in der public-Rolle.

Beispiele

Im folgenden Beispiel wird das angegebene Bindungstoken an die aktuelle Sitzung gebunden.

HinweisHinweis

Das Bindungstoken in diesem Beispiel wurde erhalten, indem sp_getbindtoken vor sp_bindsession ausgeführt wurde.

USE master;
GO
EXEC sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ';
GO

Siehe auch

Verweis

sp_getbindtoken (Transact-SQL)

srv_getbindtoken (API für erweiterte gespeicherte Prozeduren)

Gespeicherte Systemprozeduren (Transact-SQL)