sp_bindsession (Transact-SQL)

Associa ou desassocia uma sessão em relação a outras sessões na mesma instância de SQL ServerMecanismo de Banco de Dados. As sessões associadas permitem que duas ou mais sessões participem da mesma transação e bloqueios de compartilhamento até que uma ROLLBACK TRANSACTION ou COMMIT TRANSACTION seja emitida.

Para obter mais informações sobre sessões associadas, consulte Usando sessões associadas.

Observação importanteImportante

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use MARS (vários conjuntos de resultados ativos) ou, então, transações distribuídas. Para obter mais informações, consulte Usando MARS (vários conjuntos de resultados ativos) ou Transações distribuídas (Mecanismo de Banco de Dados).

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_bindsession { 'bind_token' | NULL }

Argumentos

  • 'bind_token'
    É o token que identifica a transação originalmente obtida usando sp_getbindtoken ou a função Open Data Services srv_getbindtoken. bind_tokené varchar(255).

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

Duas sessões associadas compartilham somente uma transação e bloqueios. Cada sessão retém seu próprio nível de isolamento e a definição de um novo nível de isolamento em uma sessão não afeta o nível de isolamento da outra sessão. Cada sessão permanece identificada por sua conta de segurança e só pode acessar os recursos de banco de dados para o qual a conta recebeu permissão.

sp_bindsession usa um token de associação para associar duas ou mais sessões de cliente existentes. Essas sessões de cliente devem estar na mesma instância do Mecanismo de Banco de Dados do qual o token de associação foi obtido. Uma sessão é um cliente executando um comando. As sessões associadas de banco de dados compartilham uma transação e um espaço de bloqueio.

Um token de associação obtido de uma instância de Mecanismo de Banco de Dados não pode ser usado para uma sessão de cliente conectada a outra instância, mesmo para transações DTC. Um token de associação só é válido localmente dentro de cada instância e não pode ser compartilhado por diversas instâncias. Para associar as sessões do cliente em outra instância de Mecanismo de Banco de Dados, é preciso obter um token de associação diferente executando sp_getbindtoken.

sp_bindsession falhará com um erro se usar um token inativo.

Desassocie uma sessão usando sp_bindsession sem especificar bind_token ou passando NULL em bind_token.

Permissões

Requer associação na função pública.

Exemplos

O exemplo a seguir faz a associação do token de associação especificado à sessão atual.

ObservaçãoObservação

O token de associação exibido no exemplo foi obtido executando sp_getbindtoken antes de executar sp_bindsession.

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