sqlserver存储过程是时常使用到的一个数据库对象,在存储过程中会使用到declare来定义存储过程变量,定义的存储过程变量可以通过set或者select等关键字方法来进行赋值操作,使用set对存储过程变量赋值为直接赋值,使用select则一般从数据表中查找出符合条件的属性进行赋值操作。

例如,下面定义一个存储过程年龄字段@age字段。

declare @age int;

使用set方式赋值的语句可写作为:set @age=32;

如果我们要从表usertable中查找出名字为张三的人的年龄,然后将之赋值给@age变量,就得使用select方式来赋值了,赋值方式如下:

select @age=age from usertable where name=’张三’;

此处使用select进行赋值的话需要注意个点,select查询语句一条记录都没查找出来,@age字段将不会有任何改变,也不会赋值为null,这个情况博主在实际业务中遇到过,就是使用了while循环,然后在循环中采用select对特定变量赋值,发现如果select查询集合为空集的时候,变量值不是赋值为null,而是直接保持上一次循环赋值的结果。

备注:原文转载自博主个人站it技术小趣屋,原文链接sqlserver存储过程中使用select和set给变量赋值_it技术小趣屋。