有没有办法在SQL Server中创建自己的@@变量?

时间:2011-07-14 16:03:37

标签: sql sql-server tsql sql-server-2008

在SQL服务器中,有时候我有一个可能会发生变化的变量,许多存储过程都会使用,只是认为如果我可以将它存储为'@@ variable'(如@@ servername)那就太酷了

是否可以创建自己的'@@变量'?如果是这样,你怎么做?

(使用sql server 2008)

3 个答案:

答案 0 :(得分:6)

我会使用真实的表来保存您的全局值,然后它将在重启/连接之间存活。这里有一个很好的例子:http://weblogs.sqlteam.com/mladenp/archive/2007/04/23/60185.aspx

答案 1 :(得分:1)

在这些情况下,我通常会有一个表来保存这些值,我会在那里保留设置。您可以使用标量函数将其与存储过程一起封装以进行设置。我不知道有什么方法可以实际创建你自己的@@变量,但我还没有调查它。

答案 2 :(得分:1)

您不能声明可在存储过程之间共享的全局变量。

然而,您可以使用全局临时表来共享数据,只需使用下面的语法声明表并插入/读取值。

CREATE TABLE ##myTempTable
(
  DummyField1 INT,
  DummyField2 VARCHAR(20)
)

要在连接中共享数据,您可以使用context_info:

declare @vb varbinary(128)
set @vb = context_info() -- read value
set context_info @vb -- set value