Partilhar via


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 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 novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. 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.

Transact-SQL convenções de sintaxe

Sintaxe

sp_bindsession { 'bind_token' | NULL }

Argumentos

Importante

Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção de sintaxe. Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.

'bind_token'

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

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Comentários

Duas sessões vinculadas compartilham apenas uma transação e são bloqueadas. 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 ligaçã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 do qual o token de vinculação foi obtido. Uma sessão é um cliente que executa um comando. As sessões de banco de dados acoplado compartilham uma transação e bloqueiam espaço.

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 falha com um erro se usar um token que não está ativo.

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

Permissões

Requer a participação na função pública.

Exemplos

O exemplo a seguir vincula o token de ligaçã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
EXECUTE sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ';
GO