如何从二进制字段中存储和提取数字?

时间:2013-09-19 10:34:26

标签: tsql sql-server-2012 context-info set-context-info

我有一个对表执行INSERT / DELETE操作的过程和一个在第二个表中记录更改的触发器。

我需要的是将实例化过程调用的安全用户标识传递给触发器,以便记录用户进行了更改。

似乎唯一的方法是使用SET CONTEXT_INFOCONTEXT_INFO()

问题是,我无法提取号码(用户ID)。例如,下面的代码:

SET CONTEXT_INFO 10001
GO
SELECT CAST(CONTEXT_INFO() AS INT)

返回0.

1 个答案:

答案 0 :(得分:1)

上下文信息为binary/varbinary,因此您可以首先尝试转换为binary,然后尝试转换为int

SELECT CAST(CAST(CONTEXT_INFO() AS BINARY(4)) as INT)