2012-01-19 11 views
11

używam CONTEXT_INFO pominąć wyzwalaczy jako takie:Jak ustawić CONTEXT_INFO = NULL?

IF CONTEXT_INFO() = 0x676E6F7468692073656175746F6E RETURN 

iw moim PROC:

IF CONTEXT_INFO() IS NOT NULL SET @CONTEXT_INFO = CONTEXT_INFO() -- to restore later 
SET CONTEXT_INFO 0x676E6F7468692073656175746F6E 

Jak ustawić ją z powrotem na NULL jeśli potrzebne? SET CONTEXT_INFO = NULL wykonuje pracę nie. Czy brakuje mi czegoś oczywistego?

Odpowiedz

19

Wystarczy użyć

SET CONTEXT_INFO 0x /*Gets padded with zeros when cast to binary(128)*/ 

Nie ustawić go NULL. Jeśli spojrzeć na

select context_info 
from sys.sysprocesses 

Przekonasz się, że to nie jest NULL dla każdego z połączeń.

+1

Ale zanim zostanie on zdefiniowany, jest pusty: wybierz context_info() – SQLMason

+0

+1 za sugerowanie sys.sysprocesses – SQLMason

+2

@DanAndrews - Jeśli jest wyzerowany 'select context_info()' zwraca 'NULL'. tj. "SET CONTEXT_INFO 0x; select context_info()' –

Powiązane problemy