【转】sql 里定义参数时用@和不用有什么区别

博主今天第一次做相关实验,一直没有弄懂@的意思,百度了一下搜到了答案。

以下内容均为转载:


当然有区别了,而且区别很大。

如果写成
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都可以进行赋值。
					
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值