SQL SERVER 变量赋值

SQL Server 中变量赋值的方式有两种,分别是 SET 和 SELECT。

两种赋值方式的区别如下:

  set select
同时对多个变量赋值 不支持 支持
表达式返回多个值 不支持 将返回的最后一个值赋给变量
表达式无返回值 变量被赋null值 变量保持原值

针对以上三种情况的区别,请看下面实例:

同时对多个变量赋值

(1)使用set同时对两个变量赋值

可以看到语法错误,所有set不能同时对多个变量赋值.

(2)使用select同时对两个变量赋值

可以看到语法没有问题,打印的结果也是正确的.

 

表达式返回多个值时

(1)表达式返回多个值时,使用 set 赋值

首先看一下表里的数据

然后将查询结果使用set赋值给变量 

 可以看到语法有误,不能赋值.

(2)表达式返回多个值时,使用 select 赋值

通过打印的结果,可以看到变量的值是结果集中最后一个值.

 

表达式无返回值

(1)表达式无返回值时,使用 set 赋值

首先看一下结果集中返回的值

结果集中无返回值,使用set对变量赋值:

 

表达式无返回值时,set将空值赋值给变量.

(2)表达式无返回值时,使用 select 赋值

表达式无返回值时,变量的原值保持不变.

 

还有一种特殊情况:

SELECT 也可以将标量子查询的值赋给变量,如果标量子查询不返回值,则变量被置为 null 值。

此时与使用 SET 赋值是完全相同的,实例:

select addr from chinadba1 where userid = 4 为标量子查询语句

可以看到这种写法,赋值的结果和set一样,都是null.

 

以上就是sql server中两种不同赋值方式之间的差异.

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...