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中两种不同赋值方式之间的差异.
SQL SERVER 变量赋值相关推荐
- SQL Server 变量名称的Collcation跟Instance还是跟当前DB?
使用SQL Server变量的时候碰到变量名称大小写的问题: 当前数据库是大小写不敏感的,但是声明变量之后发现变量名称是大小写敏感的.一直认为SQL Server的变量名称的Collcation是跟当 ...
- sql server set赋值和select 赋值的区别以及使用方法
sqlserver存储过程中SELECT 与 SET 对变量赋值的区别 (备注:虽然变量赋值使用方法已经不是问题,但是,了解一下select和set赋值的区别,还是提高了不少认识.应该有很多人并不熟知 ...
- SQL server 变量、运算符
一.三个表的练习 表一:学生表 student 学号:code int (主键)从1开始 姓名:name varchar(50) 性别:sex char(10) 班级:banji char(10) 语 ...
- 动态SQL中变量赋值
在动态SQL语句中进行变量的值绑定比较麻烦,这儿做个记录 declare @COUNT int,@sql nvarchar(max) set @sql = 'select @COUNT = count ...
- php的sql语句用变量赋值,sql语句变量赋值
insert into `ocenter_menu`(`title`,`pid`,`sort`,`url`,`hide`,`tip`,`group`,`is_dev`,`icon`,`module`) ...
- sql server存储过程中SELECT 与 SET 对变量赋值的区别
SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这 ...
- mysql declare 赋值_sql server和mysql变量赋值的区别 以及 MySql Declare(转)
sql server和mysql都是我们经常用到的数据库系统,下面就为您介绍sql server和mysql变量赋值的区别,希望对您能有所启迪. sql server中变量要先申明后赋值: 局部变量用 ...
- [转] SQL Server中变量的声明和使用方法
原文地址 SQL Server中变量的声明和使用方法 声明局部变量语法: DECLARE @variable_name DataType 其中 variable_name为局部变量的名称,DataTy ...
- SQL Server 表变量和临时表的区别
一.表变量 表变量在SQL Server 2000中首次被引入.表变量的具体定义包括列定义,列名,数据类型和约束.而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约 ...
最新文章
- 初学Java对某些问题的理解
- Android Framework常用工具及LOG调试方法
- CAS单点登录0-原理
- 基于Linux下嵌入式网关,基于嵌入式Linux系统的无线网络网关设计
- Python练习:七段数码管绘制
- python两个字典合并、相同key值保留_Python两个字典key相同的值组成新字典?
- PAT 1079 Total Sales of Supply Chain[比较]
- cvCloneImage()内存泄漏解决方法, cvCloneImage()和cvCopy()的区别
- C#: 生辰八字五行计算算法
- LeetCode每日一题(20200820)
- snipaste如何滚动截图_3款工具满足你对截图软件的所有想象
- SFP光模块接口说明
- python实现火车票查询工具_用 Python 写一个命令行火车票查看器
- adb控制移动数据、wifi开关、下拉菜单栏
- 原生js实现循环精灵图
- Pycharm如何将项目部署到树莓派上?
- aspen如何确定塔板数_Aspen中有关回流比、塔板数、进料板位置等灵敏度分析作用...
- 【每日早报】2019/08/13
- 免费CDN加速服务 jsDelivr 支持npm,GitHub,WordPress
- 如何把aac格式的音频转换成mp3格式的