sp_bindsession (Transact-SQL)
Aplica-se: 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, veja Usando MARS (conjuntos de resultados ativos múltiplos) 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_getbindtoken
o .
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