用两个(或更多)’@’符号声明SQL Server变量的后果是什么?

前端之家收集整理的这篇文章主要介绍了用两个(或更多)’@’符号声明SQL Server变量的后果是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
通常我会声明一个变量
declare @ConType int;

或者类似的东西.

最近在代码审查中,我遇到了一个使用双“@”的脱墨(例如,内置@@ rowcount),即

declare @@ConType int;

我注意到可以扼杀任何(合理)数量的“@”:

declare @@@@ConType int;

而变量应该运行正常.所以,以下工作应该是:

declare @@@@ConType int;
set @@@@ConType = 1;
select @@@@ConType;

Obvoiusly,上面是有点愚蠢,但我的问题是,是否有这样的方式来声明变量有什么意义?有没有什么副作用?我们应该避免这样做吗?

解决方法

变量名称的第一个字符必须是一个at符号(‘@’).任何在之后的标志没有任何特别的意义,被视为像任何其他人物一样.

但是,您应该避免声明以符号(@@)开头的变量,因为用MSDN表示:

Some Transact-sql functions have names that start with double at signs (@@). To avoid confusion with these functions,you should not use names that start with @@.

当然,这意味着也不能使用在标志处以三个或更多开头的变量名.

我猜,如果第二个字符不是一个标志,那么在变量名中稍后使用的符号并不完全错误,但是它看起来很混乱,所以这可能不是一个好主意.

猜你在找的MsSQL相关文章