sp_bindsession (Transact-SQL)
Imposta o annulla l'associazione di una sessione con altre sessioni nella stessa istanza di SQL Server Motore 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 funzionalità verrà rimossa in 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 Using Multiple Active Result Sets (MARS) o Transazioni distribuite (Motore di database). |
Convenzioni della sintassi Transact-SQL
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).
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.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
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
Vedere anche
Riferimento
sp_getbindtoken (Transact-SQL)
Stored procedure di sistema (Transact-SQL)
Altre risorse
Utilizzo di sessioni associate
srv_getbindtoken (Extended Stored Procedure API)