将内容打包成SQL Server二进制数据类型

时间:2009-08-20 17:23:44

标签: sql-server

我可以用SQL Server中的二进制数据类型做些什么来让我的生活更轻松?

我最近发现了这个漂亮的功能

DECLARE @p0 varbinary(128)
SET @p0 = --?
SET CONTEXT_INFO @p0

如何以合理有效的方式存储在此二进制插槽中有意义的数据?哦,然后以合理的方式访问这些数据?

SELECT ? = context_info
FROM sys.dm_exec_sessions
WHERE session_id = @@SPID

更新:正如gbn

指出的那样
SELECT ? = CONTEXT_INFO()

更有用的方法是依赖CONTEXT_INFO()返回某个上下文表的行ID。说:

SELECT * 
FROM ContextTable 
WHERE RowID = CONTEXT_INFO()

这将允许我查询上下文信息。

1 个答案:

答案 0 :(得分:1)

将数据传入触发器(例如,从您的网站发送到审核触发器的用户名)非常有用。

我还会使用CONTEXT_INFO()来读取数据(对于SQL Server 2005及更高版本)

一个问题:它开始为NULL但是在使用后你不能将NULL分配给它。你必须使用0x00。