我正在使用SQL Server 2008 R2。
我的问题是使用@和@@ 声明变量之间有什么区别?
在SQL Server 2008 R2中:
示例:
语法1:
Declare @a int = 1
select @a;
语法2:
Declare @@a int = 1
select @@a;
两者在这里做同样的工作。那我们为什么要使用双@@?
答案 0 :(得分:4)
没有区别。变量规则表明它们以' @'开头。字符并遵循标识符规则。
因为' @'是一个有效的标识符字符,您可以在变量名称的开头添加任意数量的标识符。但是,如果匹配与变量同名的系统函数,则查询将无法编译。
在以前版本的SQL Server @中描述了一个局部变量,而@@描述了一个全局变量。现在(SQL 2008)@@用于函数名,因此@@ should不能用作参数名。
图书在线参考http://msdn.microsoft.com/en-us/library/ms187953.aspx
如果有任何其他问题评论我:)