Compartir por


sp_bindsession (Transact-SQL)

Se aplica a: SQL Server

Enlaza o desenlace una sesión a otras sesiones de la misma instancia del Motor de base de datos de SQL Server. Las sesiones de enlace permiten que dos o más sesiones participen en la misma transacción y compartan bloqueos hasta que se emita o ROLLBACK TRANSACTION COMMIT TRANSACTION .

Importante

Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Use varios conjuntos de resultados activos (MARS) o transacciones distribuidas en su lugar. Para obtener más información, vea Usar varios conjuntos de resultados activos (MARS) en SQL Server Native Client.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_bindsession { 'bind_token' | NULL }

Argumentos

"bind_token"

Token que identifica la transacción obtenida originalmente mediante sp_getbindtoken o la función Open Data Services srv_getbindtoken . bind_token es varchar(255).

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

Las dos sesiones enlazadas comparten solo una transacción y bloqueos. Cada sesión conserva su propio nivel de aislamiento y el establecimiento de un nuevo nivel de aislamiento en una sesión no afecta al nivel de aislamiento de la otra sesión. Cada sesión permanece identificada por su cuenta de seguridad y solo puede acceder a los recursos de base de datos a los que se concede permiso a la cuenta.

sp_bindsession usa un token de enlace para enlazar dos o más sesiones de cliente existentes. Estas sesiones de cliente deben estar en la misma instancia del Motor de base de datos desde la que se obtuvo el token de enlace. Una sesión es un cliente que ejecuta un comando. Las sesiones de bases de datos enlazadas comparten la transacción y el espacio de bloqueo.

Un token de enlace obtenido de una instancia del Motor de base de datos no se puede usar para una sesión de cliente conectada a otra instancia, incluso para las transacciones DTC. Un token de enlace solo es válido localmente dentro de cada instancia y no se puede compartir entre varias instancias. Para enlazar sesiones de cliente en otra instancia del Motor de base de datos, debe obtener un token de enlace diferente ejecutando sp_getbindtoken.

sp_bindsession produce un error si usa un token que no está activo.

Desenlace de una sesión mediante sp_bindsession sin especificar bind_token o pasando NULL bind_token.

Permisos

Debe pertenecer al rol public .

Ejemplos

En el ejemplo siguiente se enlaza el token de enlace especificado a la sesión actual.

Nota:

El token de enlace que se muestra en el ejemplo se obtuvo ejecutando sp_getbindtoken antes de sp_bindsessionejecutar .

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