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技术小趣屋

博主个人技术交流群:960640092,博主微信公众号如下:

【转载】Sqlserver存储过程中使用Select和Set给变量赋值的更多相关文章

  1. MySQL存储过程中使用SELECT …INTO语句为变量赋值

    使用SELECT …INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT …INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT …INTO语句 ...

  2. 存储过程中使用select……into

    在MySQL存储过程中使用SELECT -INTO语句为变量赋值: 用来将查询返回的一行的各个列值保存到局部变量中. 要求: 查询的结果集中只能有1行. SELECT col_name[,...] I ...

  3. Sqlserver 存储过程中结合事务的代码

    Sqlserver 存储过程中结合事务的代码  --方式一 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ ...

  4. 搜索sqlserver 存储过程中的关键字

    搜索sqlserver 存储过程中的关键字 select * from sys.all_sql_modules where definition like '%SP_NAME%'

  5. sqlserver 存储过程中使用临时表到底会不会导致重编译

    曾经在网络上看到过一种说法,SqlServer的存储过程中使用临时表,会导致重编译,以至于执行计划无法重用, 运行时候会导致重编译的这么一个说法,自己私底下去做测试的时候,根据profile的跟踪结果 ...

  6. SqlServer存储过程中常用函数及操作

    1.case语句 用于选择语句 SELECT ProductNumber, Category = CASE ProductLine WHEN 'R' THEN 'Road' WHEN 'M' THEN ...

  7. 在sqlserver存储过程中给in参数传带逗号值的办法,如传'1','2','3'这样的

    最近在一项目修改中,要在存储过程中给in参数传值,语句写的也对,但怎么执行都得不出结果,如果把这语句直接赋值.执行,却能得出结果,很是奇怪,如: 直接执行select schoolname from ...

  8. oracle数据库存储过程中的select语句的位置

    导读:在oracle数据库存储过程中如果用了select语句,要么使用"select into 变量"语句要么使用游标,oracle不支持单独的select语句. 先看下这个存储过 ...

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

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

随机推荐

  1. Dart抽象类和多态

    /* Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口. 1.抽象类通过abstract 关键字来定义 2.Dart中的抽象方法不能用abstract声明, ...

  2. Spark通过修改DataFrame的schema给表字段添加注释(转载)

    转载自:https://www.jianshu.com/p/e4c90dc08935 1.需求背景 通过Spark将关系型数据库(以Oracle为例)的表同步的Hive表,要求用Spark建表,有字段 ...

  3. QCamera检测摄像头

    The QCamera class provides interface for system camera devices. More... Header: #include <QCamera ...

  4. 软件定义网络基础---SDN的产生

  5. 关于Image模块的调色板

    参考:https://blog.csdn.net/zhangziju/article/details/79123275 https://blog.csdn.net/qq_21239003/articl ...

  6. delphi中我用定时器每隔一段时间执行操作

    delphi中,我用定时器每隔一段时间执行数据库插入及更新工作!adoquery.close;adoquery.sql.cleare;adoquery.connection:=con1;adoquer ...

  7. 【sqlalchemy】

    https://www.cnblogs.com/ccorz/p/5711955.html

  8. Swift编码总结1

    1. fileprivate (set) var hasSetDiscount = false中fileprivate (set)表示什么意思: //设置setter私有,但是getter为publi ...

  9. 容器版Jenkins官方镜像 本身自带了 Java

    docker版Jenkins官方镜像 本身自带了 Java

  10. 【Tools】三款笔记本电脑硬件检测工具-官网下载

    一.CPU-Z 下载地址: https://www.cpuid.com/softwares/cpu-z.html 描述: CPU-Z已经是大名鼎鼎了.这里就不多说了.  二.Cinebench   下 ...