Sdílet prostřednictvím


sp_bindsession (Transact-SQL)

platí pro:SQL Server

Vytvoří vazbu nebo zrušení vazby relace k jiným relacím ve stejné instanci databázového stroje SQL Serveru. Vazbové relace umožňují, aby se dvě nebo více relací účastnily stejné transakce a sdílely zámky, dokud se nevystaví ROLLBACK TRANSACTION nebo COMMIT TRANSACTION.

Důležitý

Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Místo toho použijte více aktivních sad výsledků (MARS) nebo distribuovaných transakcí. Další informace naleznete v tématu Použití více aktivních sad výsledků (MARS) v sql Server Native Client.

Transact-SQL konvence syntaxe

Syntax

sp_bindsession { 'bind_token' | NULL }

Argumenty

Důležitý

Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.

'bind_token'

Token, který identifikuje transakci původně získanou pomocí sp_getbindtoken nebo funkce Open Data Services srv_getbindtoken. bind_token je varchar(255).

Návratové hodnoty kódu

0 (úspěch) nebo 1 (selhání).

Poznámky

Dvě relace vázané na sdílenou složku pouze transakce a zámky. Každá relace si zachovává vlastní úroveň izolace a nastavení nové úrovně izolace v jedné relaci nemá vliv na úroveň izolace druhé relace. Každá relace zůstává identifikována svým účtem zabezpečení a má přístup pouze k databázovým prostředkům, ke kterým má účet udělená oprávnění.

sp_bindsession používá token vazby k vytvoření vazby dvou nebo více existujících klientských relací. Tyto klientské relace musí být ve stejné instanci databázového stroje, ze které byl získán token vazby. Relace je klient, který spouští příkaz. Relace vázané databáze sdílejí transakci a zamknout prostor.

Token vazby získaný z jedné instance databázového stroje nelze použít pro klientskou relaci připojenou k jiné instanci, a to ani pro transakce DTC. Token vazby je platný pouze místně uvnitř každé instance a nejde ho sdílet napříč několika instancemi. Chcete-li svázat klientské relace v jiné instanci databázového stroje, je nutné získat jiný token vazby spuštěním sp_getbindtoken.

sp_bindsession selže s chybou, pokud používá token, který není aktivní.

Zrušení vazby z relace pomocí sp_bindsession bez zadání bind_token nebo předáním NULL v bind_token.

Dovolení

Vyžaduje členství ve veřejné roli.

Příklady

Následující příklad vytvoří vazbu zadaného tokenu vazby na aktuální relaci.

Poznámka

Token vazby zobrazený v příkladu byl získán spuštěním sp_getbindtoken před spuštěním sp_bindsession.

USE master;
GO
EXEC sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ';
GO