博主今天第一次做相关实验,一直没有弄懂@的意思,百度了一下搜到了答案。
以下内容均为转载:
当然有区别了,而且区别很大。
如果写成
DECLARE name int
会有语法错误,错误信息是:
INT 不是可以识别的CURSOR(游标)选项
@加上后面的内容,说明这个是一个参数,如果不加的话,你怎么用参数呢,
比如你本来是想给参数赋值,结果写成这样:
SELECT a=column_name from .....
这不成了改列名了吗,a是表中原来的列名,column_name是查询结果表中的列名。
要是写成:
SELECT @a=column_name FROM ...
这就是给一个参数赋值。当然参数要前面定义好
还有就是@@这样开头的都是系统定义的一些存储过程,我们不能定义以@@开头的参数。
declare @a int,@b nvarcher(10)----定义变量
set @a=54,
set @b='Good luck!'
或者用SELECT都可以进行赋值。
所有评论(0)