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