会话上下文返回null

ccgok5k5  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(281)

我创建了以下存储过程:

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 SESSION_CONTEXT(N'Fruit')

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

axzmvihb

axzmvihb1#

不幸的是,会话上下文键是区分大小写的。应该是

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

相关问题