zoukankan      html  css  js  c++  java
  • 8-01变量

    变量:指的是在程序运行过程中可以发生变化的量,

    可以储存数据值的对象,能够向SQL语句传递数据。

    变量的分类:

    全局变量:系统定义和维护,可以直接以@@开头。

    局部变量:有操作者定义,以@开头,用关键字DECLARE声明。

    特点:先声明在赋值。

    作用域:只在定义它的批处理或过程中可见。

    语法:

    DELARE @变量名  数据类型

    变量赋值:

    关键字:SET-给变量赋值。

    关键字:SELECT-从表中查询数据,再赋值给变量。

    SET与SELECT语句赋值的区别:

    1:SET不能用于对多个变量赋值,SELECT可以。

    2:表达式来返回值的时候SET赋NULL,SELECT保持原值不变。

    --声明变量:
    DELARE @Id  varchar, @PWD   varchar(10)
    --使用SET给变量赋值:
    SET  ID='bobo'
    --使用SELECT 给变量赋值:
    SELECT  @PWD=UserPwd  FROM  UserId  WHERE  ID=@Id
    

    在下面输出一下看看有没有赋值成功:

    PRINT   @Id
    PRINT @PWD
    GO

      

    现在来查询用户表bobo的用户:

    SELECT *FROM   UserInfo  WHERE   UserID=@Id
    

    但是在这里会报一个错误,这是就是作用域问题,因为声明在批处理当中,所以当批处理结束后就不能使用了,

    想使用的话把GO注释掉就可以了。

    当返回值为多个时,来用SET赋值:

    SET  @ID=(SELECT UserAddress   FROM UserInfo)
    

     

    这中情况用SET的话会报错,必须用SELECT。

    SET对表达式无返回值的时候,将空值赋给变量:

    DELARE  @name varchar(10)
    SET  @name='张三'
    SET  @name=(SELECT UserName  FROM  UseInfo WHERE  UserId='yaya'  )
    

      

    用SELECT给无返回值的表达式复赋值:

    SELECT   @name=(SELECT UserName  FROM  UseInfo WHERE  UserId='yaya'  )
    SELECT  @name
    

      

  • 相关阅读:
    UE4物理笔记
    lambda+mutable配合move实现单函数多程序域
    UE导航系统详
    cpp智能指针
    [转载]新手应该如何学习网站分析
    webpack 单独打包指定JS文件
    vue-cli axios ie9 问题
    [分享] 通过修改CSS自定义chrome滚动条样式
    日期格式化转换方法
    vue 路劲
  • 原文地址:https://www.cnblogs.com/gcmwalker/p/6090948.html
Copyright © 2011-2022 走看看