sp_bindsession (Transact-SQL)

Enlaza, o desenlaza, una sesión con otras sesiones en la misma instancia del Database Engine (Motor de base de datos) de SQL Server. Las sesiones enlazadas permiten que dos o más sesiones participen en la misma transacción y compartan bloqueos hasta que se emita una instrucción ROLLBACK TRANSACTION o COMMIT TRANSACTION.

Para obtener más información acerca de las conexiones enlazadas, vea Usar sesiones enlazadas.

ms174403.note(es-es,SQL.90).gifImportante:
Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. En su lugar, utilice conjuntos de resultados activos múltiples (MARS) o transacciones distribuidas. Para obtener más información, vea Using Multiple Active Result Sets (MARS) o Transacciones distribuidas (motor de base de datos).

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_bindsession { 'bind_token' | NULL }

Argumentos

  • 'bind_token'
    Es el testigo que identifica la transacción obtenida originalmente con sp_getbindtoken o con la función srv_getbindtoken de Servicios abiertos de datos. bind_tokenes de tipo varchar(255).

Notas

Las dos sesiones enlazadas comparten sólo una transacción y bloqueos. Cada sesión conserva su propio nivel de aislamiento y la configuración de un nivel de aislamiento nuevo en una sesión no afecta al nivel de aislamiento de la otra sesión. Cada sesión sigue siendo identificada por su cuenta de seguridad y sólo puede tener acceso a los recursos de la base de datos para los que se ha concedido acceso a la cuenta.

sp_bindsession utiliza un testigo de enlace para enlazar dos o más sesiones de cliente existentes. Estas sesiones de cliente deben estar en la misma instancia del Database Engine (Motor de base de datos) desde la que se obtuvo el testigo 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 enlace obtenido a partir de una instancia del Database Engine (Motor de base de datos) no puede utilizarse en una sesión de cliente que esté en otra instancia, incluso si se trata de una transacción DTC. Un testigo de enlace solamente es válido dentro de cada instancia y no se puede compartir entre varias. Para enlazar las sesiones de cliente a otra instancia del Database Engine (Motor de base de datos), debe obtener un testigo de enlace distinto mediante la ejecución de sp_getbindtoken.

sp_bindsession generará un error si se utiliza un testigo que no esté activo.

Se puede desenlazar una sesión con sp_bindsession sin especificar bind_token o si se pasa NULL en bind_token.

Permisos

Requiere la pertenencia a la función public.

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplos

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

[!NOTA] El testigo de enlace mostrado en este ejemplo se obtuvo ejecutando sp_getbindtoken antes de ejecutar sp_bindsession.

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

Vea también

Referencia

sp_getbindtoken (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)

Otros recursos

Usar sesiones enlazadas
srv_getbindtoken (Extended Stored Procedure API)

Ayuda e información

Obtener ayuda sobre SQL Server 2005