我试图在 SQL 中找到一些与 session 变量等效的东西。我希望能够存储和检索一个数字,但与数据库的每个连接都有不同的数字。它需要在同一连接上从一批持续到下一批。
我确实有一个使用像这样的全局光标的解决方案。
IF (SELECT CURSOR_STATUS('global','ChangeSet')) >= 0
BEGIN --Close and deallocate the cursor
Close ChangeSet
DEALLOCATE ChangeSet
END
--Create a new cursor
DECLARE ChangeSet CURSOR GLOBAL STATIC FOR
SELECT ChangeSet = @ChangeSet
--Open the cursor
OPEN ChangeSet
每个连接都有不同的光标,因此它可以工作,但这在 View 内部不可用。我想如果有人能告诉我如何在 View 中阅读这篇文章,那就太酷了。
顺便说一句,我正在使用 MS SQL Server。
最佳答案
CONTEXT_INFO
属性可能就是您正在寻找的 - 它使您能够设置和读取特定于连接的二进制值。
您可以将数值编码为二进制并将其存储在此属性中。
关于SQL session /连接变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5535823/