sp_bindsession (Transact-SQL)
gäller för:SQL Server
Binder eller avbindar en session till andra sessioner i samma instans av SQL Server Database Engine. Med bindningssessioner kan två eller flera sessioner delta i samma transaktion och dela lås tills en ROLLBACK TRANSACTION
eller COMMIT TRANSACTION
har utfärdats.
Viktig
Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Använd flera aktiva resultatuppsättningar (MARS) eller distribuerade transaktioner i stället. Mer information finns i Using Multiple Active Result Sets (MARS) in SQL Server Native Client.
Transact-SQL syntaxkonventioner
Syntax
sp_bindsession { 'bind_token' | NULL }
Argument
Viktig
Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.
"bind_token"
Den token som identifierar transaktionen som ursprungligen erhölls med hjälp av sp_getbindtoken
eller funktionen Open Data Services srv_getbindtoken
.
bind_token är varchar(255).
Returnera kodvärden
0
(lyckades) eller 1
(fel).
Anmärkningar
Två sessioner som endast är bundna delar en transaktion och lås. Varje session behåller sin egen isoleringsnivå, och att ange en ny isoleringsnivå på en session påverkar inte isoleringsnivån för den andra sessionen. Varje session förblir identifierad av dess säkerhetskonto och kan bara komma åt de databasresurser som kontot har beviljats behörighet till.
sp_bindsession
använder en bindningstoken för att binda två eller flera befintliga klientsessioner. Dessa klientsessioner måste finnas på samma instans av databasmotorn som bindningstoken hämtades från. En session är en klient som kör ett kommando. Bundna databassessioner delar en transaktion och låser utrymme.
En bindningstoken som hämtas från en instans av databasmotorn kan inte användas för en klientsession som är ansluten till en annan instans, inte ens för DTC-transaktioner. En bindningstoken är endast giltig lokalt i varje instans och kan inte delas mellan flera instanser. Om du vill binda klientsessioner på en annan instans av databasmotorn måste du skaffa en annan bindningstoken genom att köra sp_getbindtoken
.
sp_bindsession
misslyckas med ett fel om den använder en token som inte är aktiv.
Ta bort bindning från en session med hjälp av sp_bindsession
utan att ange bind_token eller genom att skicka NULL
i bind_token.
Behörigheter
Kräver medlemskap i den offentliga rollen.
Exempel
I följande exempel binds den angivna bindningstoken till den aktuella sessionen.
Not
Bindningstoken som visas i exemplet erhölls genom att köra sp_getbindtoken
innan sp_bindsession
kördes .
USE master;
GO
EXEC sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ';
GO