sp_bindsession (Transact-SQL)

Aplica-se a:SQL Server

Vincula ou desvincula uma sessão a outras sessões na mesma instância do Mecanismo de Banco de Dados do SQL Server. As sessões de vinculação permitem que duas ou mais sessões participem da mesma transação e bloqueiem o compartilhamento 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 de banco de dados aos quais a conta recebe permissão.

sp_bindsession usa um token de associação para vincular 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 a partir 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 vincular 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.

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

Desvincule de uma sessão usando sp_bindsession sem especificar bind_token ou passando NULLbind_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 ligaçã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