sp_bindsession (Transact-SQL)

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

Weitere Informationen zu gebundenen Sitzungen finden Sie unter Verwenden von gebundenen Sitzungen.

ms174403.note(de-de,SQL.90).gifWichtig:
Dieses Feature wird in einer zukünftigen Version von Microsoft SQL Server entfernt. Verwenden Sie dieses Feature 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 Using Multiple Active Result Sets (MARS) oder Verteilte Transaktionen (Datenbankmodul).

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_bindsession { 'bind_token' | NULL }

Argumente

  • 'bind_token'
    Das Token, das die Transaktion identifiziert, die ursprünglich mithilfe von sp_getbindtoken oder der Open Data Services-Funktion srv_getbindtoken erhalten wird. bind_token ist 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 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 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 gemeinsam genutzt werden. Sie müssen durch Ausführen von sp_getbindtoken ein anderes Bindungstoken abrufen, um Clientsitzungen auf einer anderen Instanz vom 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.

ms174403.note(de-de,SQL.90).gifHinweis:
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)
Gespeicherte Systemprozeduren (Transact-SQL)

Andere Ressourcen

Verwenden von gebundenen Sitzungen
srv_getbindtoken (Extended Stored Procedure API)

Hilfe und Informationen

Informationsquellen für SQL Server 2005