Kontextové informace nemají žádný rozsah (ve smyslu rozsahu jazykových proměnných) a jsou vázány na dobu trvání relace. Po nastavení zůstanou kontextové informace na nastavené hodnotě, dokud se spojení neukončí (relace se neukončí) nebo dokud nebude nastavena nová hodnota. Protože provádění v relaci je vždy sekvenční, o souběžnosti nemůže být řeč.
POKUD nastavíte kontextové informace v proceduře, každý spouštěč následně spuštěný v této relaci uvidí nově nastavenou hodnotu kontextových informací. Nastavení hodnoty ID uživatele v kontextových informacích, jak navrhujete, a její použití ve spouštěčích je typickým příkladem použití kontextových informací a je naprosto bezpečné, pokud jde o souběžnost, protože v podstatě o žádné souběžnosti nelze mluvit. Pokud plánujete nastavit kontextové informace v uložené proceduře a pak se na ně spolehnout ve spouštěči, která se spouští kvůli odstraněním, ke kterým v uvedené proceduře dochází, pak vaše dávka ještě neskončila, takže podle článku, na který jste odkazovali, načtete informace conetxt z sys.dm_exec_requests
DMV nebo z CONTEXT_INFO()
funkce. Dosud nebude odeslán v sys.dm_exec_sessions
, k tomu může dojít až poté, co opustíte uloženou proceduru a dokončíte jakékoli další volání v dávce T-SQL odeslané na server ('požadavek').