SQL Server 2008 R2中@@和@之间的区别

时间:2014-12-23 07:18:47

标签: sql-server sql-server-2008-r2

我正在使用SQL Server 2008 R2。

我的问题是使用@和@@ 声明变量之间有什么区别?

在SQL Server 2008 R2中:

示例

语法1:

Declare @a int = 1

select @a;

语法2:

Declare @@a int = 1

select @@a;

两者在这里做同样的工作。那我们为什么要使用双@@?

1 个答案:

答案 0 :(得分:4)

没有区别。变量规则表明它们以' @'开头。字符并遵循标识符规则。

因为' @'是一个有效的标识符字符,您可以在变量名称的开头添加任意数量的标识符。但是,如果匹配与变量同名的系统函数,则查询将无法编译。

在以前版本的SQL Server @中描述了一个局部变量,而@@描述了一个全局变量。现在(SQL 2008)@@用于函数名,因此@@ should不能用作参数名。

图书在线参考http://msdn.microsoft.com/en-us/library/ms187953.aspx

如果有任何其他问题评论我:)