Compartilhar via


sp_bindsession (Transact-SQL)

Aplica-se a: SQL Server

Associa ou desassocia uma sessão a outras sessões na mesma instância do Mecanismo de Banco de Dados do SQL Server. As sessões de associação permitem que duas ou mais sessões participem da mesma transação e compartilhem bloqueios até que um ROLLBACK TRANSACTION ou COMMIT TRANSACTION seja emitido.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Em vez disso, use vários conjuntos de resultados ativos (MARS) ou transações distribuídas. Para obter mais informações, consulte Usando vários conjuntos de resultados ativos (MARS) no SQL Server Native Client.

Convenções de sintaxe de 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 do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

Duas sessões associadas compartilham somente uma transação e bloqueios. Cada sessão mantém seu próprio nível de isolamento, e definir 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 do banco de dados para os quais a conta tem 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 da 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 do 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 é válido apenas localmente dentro de cada instância e não pode ser compartilhado entre várias instâncias. Para associar sessões de cliente em outra instância do Mecanismo de Banco de Dados, você deve obter um token de associação diferente executando sp_getbindtokeno .

sp_bindsession falhará com um erro se usar um token que não está ativo.

Desvincule de uma sessão usando sp_bindsession sem especificar bind_token ou passando NULL bind_token.

Permissões

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

Exemplos

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

Observação

O token de vinculação mostrado 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