Condividi tramite


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.

Nota importanteImportante

Questa funzionalità 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).

Icona di collegamento a un argomento 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è 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 sicurezza 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

Vedere anche

Riferimento

sp_getbindtoken (Transact-SQL)

srv_getbindtoken (API delle stored procedure estese)

Stored procedure di sistema (Transact-SQL)