首页 > 解决方案 > SESSION_CONTEXT 返回 NULL

问题描述

我创建了以下存储过程:

CREATE PROCEDURE [CheckSecurityContext] AS
BEGIN
    DECLARE @Fruit varchar(20) = CONVERT(varchar(20), SESSION_CONTEXT(N'FRUIT'))
    SELECT CheckSecurityContext = @Fruit
END

并已分配值和键,如下所示:

EXEC sp_set_session_context N'Fruit',  N'Mango'

然后执行存储过程:

EXEC CheckSecurityContext

当前结果NULL不是Mango,但是当我执行如下简单的 SELECT 时:

select SESSION_CONTEXT(N'Fruit')

结果是Mango,我有点困惑 ast 键值在整个会话中是持久的。我们可以多次执行存储过程,每次执行都返回相同的值。但我得到一个 NULL 结果。

标签: sqlsql-servertsql

解决方案


不幸的是,SESSION_CONTEXT 键是区分大小写的。应该

DECLARE @Fruit varchar(20) = CONVERT(varchar(20), SESSION_CONTEXT(N'Fruit'))

推荐阅读