任意のセッションを、SQL Server データベース エンジンの同じインスタンス内にある別のセッションに対して、バインドまたはバインド解除します。セッションをバインドすると、複数のセッションを同じトランザクションに含むことができ、ROLLBACK TRANSACTION または COMMIT TRANSACTION が実行されるまでロックを共有できます。
バインドされたセッションの詳細については、「バインドされたセッションの使用」を参照してください。
Transact-SQL 構文表記規則

構文
sp_bindsession { 'bind_token' | NULL }

引数
-
'
bind_token
'
-
sp_getbindtoken または Open Data Service 関数 srv_getbindtoken によって最初に取得されたトランザクションを示すトークンを指定します。bind_token のデータ型は varchar(255) です。

解説
バインドされた 2 つのセッションが共有するのはトランザクションとロックだけです。各セッションはそれぞれの分離レベルを保持し、一方のセッションで新しい分離レベルを設定しても、もう一方のセッションの分離レベルには影響しません。各セッションは引き続きセキュリティ アカウントによって識別されます。またこれらのセッションは、そのアカウントに権限が与えられているデータベース リソースにしかアクセスできません。
sp_bindsession では、バインド トークンを使用して、複数の既存のクライアント セッションをバインドします。これらのクライアント セッションは、バインド トークンを取得したデータベース エンジンのインスタンス上に存在する必要があります。セッションとは、クライアントが実行しているコマンドのことです。バインドされたデータベース セッションは、トランザクションとロック領域を共有します。
データベース エンジンの 1 つのインスタンスから取得したバインド トークンは、DTC トランザクションの場合でも、別のインスタンスに接続するクライアント セッションには使用できません。バインド トークンは、各インスタンス内でローカルに有効なだけで、複数のインスタンスにわたって共有することはできません。データベース エンジンの別のインスタンスにあるクライアント セッションをバインドするには、sp_getbindtoken を実行して別のバインド トークンを取得する必要があります。
sp_bindsession では、アクティブでないトークンを使用するとエラーが発生して失敗します。
セッションからのバインドの解除は、bind_token を指定せずに sp_bindsession を使用するか、bind_token に NULL を渡すことにより実行できます。

権限

戻り値

例
次の例では、指定したバインド トークンを現在のセッションにバインドします。
メモ : |
|---|
|
この例に示されているバインド トークンは、sp_bindsession を実行する前に sp_getbindtoken を実行して取得したものです。
|
USE master;
GO
EXEC sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ';
GO

参照