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 Utilizar conjuntos de resultados activos múltiples (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_bindsession
ejecutar .
USE master;
GO
EXEC sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ';
GO