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中两种不同赋值方式之间的差异.

SQL SERVER 变量赋值相关推荐

  1. SQL Server 变量名称的Collcation跟Instance还是跟当前DB?

    使用SQL Server变量的时候碰到变量名称大小写的问题: 当前数据库是大小写不敏感的,但是声明变量之后发现变量名称是大小写敏感的.一直认为SQL Server的变量名称的Collcation是跟当 ...

  2. sql server set赋值和select 赋值的区别以及使用方法

    sqlserver存储过程中SELECT 与 SET 对变量赋值的区别 (备注:虽然变量赋值使用方法已经不是问题,但是,了解一下select和set赋值的区别,还是提高了不少认识.应该有很多人并不熟知 ...

  3. SQL server 变量、运算符

    一.三个表的练习 表一:学生表 student 学号:code int (主键)从1开始 姓名:name varchar(50) 性别:sex char(10) 班级:banji char(10) 语 ...

  4. 动态SQL中变量赋值

    在动态SQL语句中进行变量的值绑定比较麻烦,这儿做个记录 declare @COUNT int,@sql nvarchar(max) set @sql = 'select @COUNT = count ...

  5. php的sql语句用变量赋值,sql语句变量赋值

    insert into `ocenter_menu`(`title`,`pid`,`sort`,`url`,`hide`,`tip`,`group`,`is_dev`,`icon`,`module`) ...

  6. sql server存储过程中SELECT 与 SET 对变量赋值的区别

    SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这 ...

  7. mysql declare 赋值_sql server和mysql变量赋值的区别 以及 MySql Declare(转)

    sql server和mysql都是我们经常用到的数据库系统,下面就为您介绍sql server和mysql变量赋值的区别,希望对您能有所启迪. sql server中变量要先申明后赋值: 局部变量用 ...

  8. [转] SQL Server中变量的声明和使用方法

    原文地址 SQL Server中变量的声明和使用方法 声明局部变量语法: DECLARE @variable_name DataType 其中 variable_name为局部变量的名称,DataTy ...

  9. SQL Server 表变量和临时表的区别

    一.表变量 表变量在SQL Server 2000中首次被引入.表变量的具体定义包括列定义,列名,数据类型和约束.而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约 ...

最新文章

  1. 初学Java对某些问题的理解
  2. Android Framework常用工具及LOG调试方法
  3. CAS单点登录0-原理
  4. 基于Linux下嵌入式网关,基于嵌入式Linux系统的无线网络网关设计
  5. Python练习:七段数码管绘制
  6. python两个字典合并、相同key值保留_Python两个字典key相同的值组成新字典?
  7. PAT 1079 Total Sales of Supply Chain[比较]
  8. cvCloneImage()内存泄漏解决方法, cvCloneImage()和cvCopy()的区别
  9. C#: 生辰八字五行计算算法
  10. LeetCode每日一题(20200820)
  11. snipaste如何滚动截图_3款工具满足你对截图软件的所有想象
  12. SFP光模块接口说明
  13. python实现火车票查询工具_用 Python 写一个命令行火车票查看器
  14. adb控制移动数据、wifi开关、下拉菜单栏
  15. 原生js实现循环精灵图
  16. Pycharm如何将项目部署到树莓派上?
  17. aspen如何确定塔板数_Aspen中有关回流比、塔板数、进料板位置等灵敏度分析作用...
  18. 【每日早报】2019/08/13
  19. 免费CDN加速服务 jsDelivr 支持npm,GitHub,WordPress
  20. 如何把aac格式的音频转换成mp3格式的

热门文章

  1. 【2022年1月1日更新】宝塔+青龙+Nvjdc一对一推送+wskey智能化+管理员推送+Ninja+SaoBing面板+kingfeng+go-cqhttp/qqbot
  2. 数据标注是做什么的?
  3. SSM餐饮管理点餐系统
  4. Arcmap做地图要领总结
  5. 蓝牙BLEBLEcc2540开启广播的过程
  6. VS6 sp6补丁下载 [防VC6卡死]
  7. 目前互联网比较赚钱的项目
  8. 一场官司,终于让人们看清了苹果
  9. MySql安装与使用
  10. IE可以上网其他浏览器上不了