MS SQL Server - 列出所有会话上下文值
Posted
技术标签:
【中文标题】MS SQL Server - 列出所有会话上下文值【英文标题】:MS SQL Server - List All Session Context Values 【发布时间】:2018-04-23 13:37:00 【问题描述】:我最近开始使用 SQL Server 2016,并且正在使用 SESSION_CONTEXT 值来传递一些数据。
我正在尝试找出是否有任何方法可以同时读取所有会话上下文设置。为了澄清这仅用于调试目的 - 我已经可以访问各个设置(请参见下面的代码)。如果可能的话,我希望能够一口气读取所有这些设置。
-- What I Have
EXEC sp_set_session_context 'SortOrder','Price ASC'
EXEC sp_set_session_context 'ItemsPerPage',20
SELECT SESSION_CONTEXT(N'SortOrder') [SortOrder]
SELECT SESSION_CONTEXT(N'ItemsPerPage') [ItemsPerPage]
SELECT SESSION_CONTEXT(N'NotSetYet') [NotSetYet]
-- What I'd like
SELECT * FROM SESSION_CONTEXT_TABLE
感谢您的帮助。
非常感谢。
【问题讨论】:
如果Aaron Bertrand doesn't mention a way in his dig into this feature,我强烈怀疑没有办法。技巧:存储一个名为index
的值,其中包含一个以逗号分隔的真实 设置名称列表...呃...
Database Administrators 上的跨站点欺骗:dba.stackexchange.com/questions/188868/… - 那里也没有答案
【参考方案1】:
会话上下文存储在系统页面中,因此您无法在没有密钥的情况下检索所有上下文的列表。
如果您正在寻找全局参数,请尝试保存为 JSON、XML 或 CSV 字符串并使用密钥检索。
【讨论】:
fwiw 你不能(可靠地)这样做,因为该值是一个不适应 blob 类型的 sql_variant。 @Math;如果有帮助,请标记答案,如果有帮助,请发表评论。以上是关于MS SQL Server - 列出所有会话上下文值的主要内容,如果未能解决你的问题,请参考以下文章