Informacje kontekstowe nie mają zasięgu (w sensie zakresu zmiennych językowych) i są powiązane z czasem życia sesji. Po ustawieniu informacje kontekstowe pozostają na ustawionej wartości, dopóki połączenie nie zostanie zamknięte (sesja zostanie zakończona) lub do momentu ustawienia nowej wartości. Ponieważ wykonanie w sesji jest zawsze sekwencyjnie, nie ma mowy o współbieżności.
JEŚLI ustawisz informacje kontekstowe w procedurze, każdy wyzwalacz, który zostanie następnie wykonany w tej sesji, zobaczy nowo ustawioną wartość informacji kontekstowych. Ustawienie wartości identyfikatora użytkownika w informacji kontekstowej, jak proponujesz, i użycie jej w wyzwalaczach jest typowym przykładem użycia informacji kontekstowych i jest całkowicie bezpieczne w odniesieniu do współbieżności, ponieważ w zasadzie nie ma o czym mówić. Jeśli planujesz ustawić informacje kontekstowe w procedurze składowanej, a następnie polegać na nich w wyzwalaczu, który jest uruchamiany z powodu usunięć, które występują we wspomnianej procedurze, to Twoja partia jeszcze się nie zakończyła, więc zgodnie z połączonym artykułem pobierasz informacje o conetxt z sys.dm_exec_requests
DMV lub z CONTEXT_INFO()
funkcjonować. Nie zostanie jeszcze umieszczony w sys.dm_exec_sessions
, co może się zdarzyć tylko po wyjściu z procedury składowanej i zakończeniu każdego innego wywołania w partii T-SQL wysłanej do serwera ("żądanie").