2012-01-19 4 views
11

私は、次のようなトリガをスキップするCONTEXT_INFOを使用します。どのようにCONTEXT_INFO = NULLを設定しますか?

IF CONTEXT_INFO() = 0x676E6F7468692073656175746F6E RETURN 

と私のPROCに:あなたが必要な場合は、バックNULLにそれを設定するにはどうすればよい

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

SET CONTEXT_INFO = NULLではなく、が働きます。私は明白な何かを欠いていますか

答えて

19

はちょうどあなたがNULLにそれを設定しない

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

を使用しています。あなたが見ている場合

select context_info 
from sys.sysprocesses 

接続のいずれかがNULLではないことがわかります。

+1

しかし、それが定義される前にはnullです。select context_info() – SQLMason

+0

+1のsys.sysprocessesを提案します。 – SQLMason

+2

@DanAndrews - 'select context_info() 'は' NULL'を返します。すなわち、 'CONTEXT_INFO 0x; select context_info()' –