sp_bindsession (Transact-SQL)
Imposta o annulla l'associazione di una sessione con altre sessioni nella stessa istanza di SQL ServerMotore di database. L'associazione di sessioni consente a due o più sessioni di partecipare alla stessa transazione e condividere i blocchi fino a quando non viene eseguita un'istruzione ROLLBACK TRANSACTION o COMMIT TRANSACTION.
Per ulteriori informazioni sulle sessioni associate, vedere Utilizzo di sessioni associate.
Importante |
---|
Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Utilizzare MARS (Multiple Active Results Sets) o transazioni distribuite. Per ulteriori informazioni, vedere Utilizzo di MARS (Multiple Active Result Set) o Transazioni distribuite (Motore di database). |
Sintassi
sp_bindsession { 'bind_token' | NULL }
Argomenti
- 'bind_token'
Token di identificazione della transazione ottenuto in origine tramite sp_getbindtoken o la funzione srv_getbindtoken del servizio ODS (Open Data Services). bind_tokenè di tipo varchar(255).
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Osservazioni
Due sessioni associate condividono esclusivamente la transazione e i blocchi. Ogni sessione mantiene il livello di isolamento specifico impostato e se si imposta un diverso livello di isolamento per una sessione, tale modifica non influisce sul livello di isolamento dell'altra sessione. Ogni sessione è identificata da un account di protezione specifico e consente l'accesso solo alle risorse del database per cui l'account in questione dispone delle autorizzazioni.
La stored procedure sp_bindsession utilizza un token di associazione per associare due o più sessioni client esistenti. Tali sessioni devono essere incluse nella stessa istanza di 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.
Non è possibile utilizzare un token di associazione ottenuto da un'istanza di Motore di database per una sessione client connessa a un'altra istanza, anche nel caso di transazioni DTC. Un token di associazione è valido solo a livello locale all'interno di ogni istanza e non può essere condiviso tra più istanze. Per associare sessioni client in un'altra istanza di Motore di database, è necessario ottenere un diverso token di associazione tramite l'esecuzione di sp_getbindtoken.
La stored procedure sp_bindsession ha esito negativo se utilizzata con un token non attivo.
Per disassociare una sessione, utilizzare sp_bindsession senza specificare bind_token oppure specificare NULL per l'argomento 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 sp_bindsession.
USE master;
GO
EXEC sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ';
GO