gpt4 book ai didi

sql - 为什么我不能在一行语句中设置 T-SQL CONTEXT_INFO 变量?

转载 作者:行者123 更新时间:2023-12-02 03:34:26 24 4
gpt4 key购买 nike

我需要将 SQL Server 中的 CONTEXT_INFO 变量设置为用户 session 的唯一标识符,准确地说是用户 session 的 GUID。

但我无法用或多或少简洁的单行代码执行此操作。我有义务创建新的二进制变量,并将其分配给 CONTEXT_INFO

看起来像这样:

DECLARE @sessionId binary(16) = CAST(CAST('A53BEEF9-4AFF-937A-857A-2C27B845B755' AS uniqueidentifier) AS binary(16)) 
SET CONTEXT_INFO @sessionId

是否可以将所有内容都放在一行语句中?

如下所示的直接解决方案:

SET CONTEXT_INFO CAST(CAST('A53BD5F9-4AFF-E211-857A-2C27D745B005' AS uniqueidentifier) AS binary(16)) 

不幸的是,这不起作用。而且我无法理解这种行为的原因。

编辑:

sessionId 将在运行时生成,因此硬编码常量二进制值将不起作用...

最佳答案

根据: http://msdn.microsoft.com/en-us/library/ms187768.aspx

“SET CONTEXT_INFO 不接受常量或变量名以外的表达式。要将上下文信息设置为函数调用的结果,您必须首先将函数调用的结果包含在二进制或 varbinary 变量中。”

关于sql - 为什么我不能在一行语句中设置 T-SQL CONTEXT_INFO 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24570791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com