Condividi tramite


sp_bindsession (Transact-SQL)

Si applica a: SQL Server

Associa o annulla l'associazione di una sessione ad altre sessioni nella stessa istanza del motore di database di SQL Server. Le sessioni di associazione consentono a due o più sessioni di partecipare alla stessa transazione e condividere blocchi fino a quando non viene emesso un ROLLBACK TRANSACTION o COMMIT TRANSACTION .

Importante

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Usare invece più set di risultati attivi (MARS) o transazioni distribuite. Per altre informazioni, vedere Uso di MARS (Multiple Active Result Set) in SQL Server Native Client.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_bindsession { 'bind_token' | NULL }

Argomenti

'bind_token'

Token che identifica la transazione ottenuta originariamente tramite sp_getbindtoken o la funzione Open Data Services srv_getbindtoken . bind_token è varchar(255).

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

Due sessioni associate condividono esclusivamente la transazione e i blocchi. Ogni sessione mantiene il proprio livello di isolamento e l'impostazione di un nuovo livello di isolamento in una sessione non influisce sul livello di isolamento dell'altra sessione. Ogni sessione rimane identificata dall'account di sicurezza e può accedere solo alle risorse del database a cui viene concessa l'autorizzazione.

sp_bindsession usa un token di associazione per associare due o più sessioni client esistenti. Queste sessioni client devono trovarsi nella stessa istanza del motore di database da cui è stato ottenuto il token di associazione. Una sessione è un client che esegue un comando. Le sessioni di database associate condividono una transazione e uno spazio di blocco.

Un token di associazione ottenuto da un'istanza del motore di database non può essere usato per una sessione client connessa a un'altra istanza, anche per le transazioni DTC. Un token di associazione è valido solo in locale all'interno di ogni istanza e non può essere condiviso tra più istanze. Per associare sessioni client in un'altra istanza del motore di database, è necessario ottenere un token di associazione diverso eseguendo sp_getbindtoken.

sp_bindsession ha esito negativo con un errore se usa un token che non è attivo.

Annullare l'associazione da una sessione usando sp_bindsession senza specificare bind_token o passando NULL bind_token.

Autorizzazioni

È richiesta l'appartenenza al ruolo public .

Esempi

Nell'esempio seguente viene associato alla sessione corrente il token di associazione specificato.

Nota

Il token di associazione illustrato nell'esempio è stato ottenuto eseguendo sp_getbindtoken prima di eseguire sp_bindsession.

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