日期:2014-05-17  浏览次数:20853 次

SQL中@@符号.
以前接触的SQL太过肤浅了...
这几天看一下书.
发现好多函数有"@@"符号.
貌似,有@@是 存储过程用的是吧?
因为我查资料也没有说@@是什么意思.我只是猜的...@是可以带参数...@@是不是系统的函数?

------解决方案--------------------
一般是系统函数。比如@@row可以捕获上一个查询内容的行数
------解决方案--------------------
不一定是存储过程,好比你建立表的时候,需要用到自增列,这时候你可以声明一个 @@Identity 函数来标识说此列为自增列,应该是系统函数的意思吧
------解决方案--------------------
系统函数,例如@@identity就是获取最后一个id数据
------解决方案--------------------
微软文档说:
Some Transact-SQL functions have names that start with double at signs (@@). To avoid confusion with these functions, it is recommended that you do not use names that start with @@.

换言之,@@开头的函数仅仅是为了避免和用户定义的函数混淆,作为保留符号。
------解决方案--------------------
类似的,微软的C/C++库中里面有很多 __ (双下划线)定义的变量和宏。也是一样的目的。
如果不使用特别符号作为前导,那么就很容易无意地和别的命名重复。
------解决方案--------------------
在存储过程和SQL中都可以直接使用,是系统全局变量,为了和用户自定义变量区分,所以用两个@。