几个月前我有这个工作,但我无法读回代码中设置的会话变量,但我可以在查询分析器中..这个 C# 代码设置变量
String.Format("EXEC sp_set_session_context N'TENANTID', '{0}'", tenantId);
SPSDatabaseInfo.ExecuteScalar(SPSDatabaseInfo.DBType.MSSQLServer, _connString, sql, null);
但是当我立即读回来时
sql = "select SESSION_CONTEXT(N'TENANTID') AS SESSION_ID";
var retVal = SPSDatabaseInfo.ExecuteScalar(SPSDatabaseInfo.DBType.MSSQLServer, _connString, sql, null);
它返回 null 但我可以在管理工作室中设置和读取它没问题
EXEC sys.sp_set_session_context @key = N'TENANTID', @value = 'TEST_ID'
select SESSION_CONTEXT(N'TENANTID')
任何想法为什么?