SQL session /连接变量

标签 sql sql-server tsql

我试图在 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/

相关文章:

SQL Server 使用 CONVERT() 返回奇怪的日期

mysql - 连接派生表时列不能为空错误

sql - Delphi 中 TADOStoredProc.ProcedureName 值中的 "*;1"是什么?

sql - 使用子记录数据更新父记录的字段(同一表)

sql-server-2005 - 如何在 T-SQL 中执行之前解析动态 SQL?

SQL Server 查询未完成执行

mysql - 从连接表中提取信息的 SQL 查询

mysql - 如何修复具有指定表两次错误的 SQL 查询

sql - text 或 ntext 数据类型上 REPLACE 的替代方案

sql - T-SQL : Wild Card as table name alias in select statement possible?