zoukankan      html  css  js  c++  java
  • SQL中的变量

    变量


    局部变量是可以保存单个特定类型数据值的对象,变量的作用域从声明变量的地方开始到声明变量的批处理或存储过程的结尾。

    局部变量使用DECLARE语句定义,并且指定变量的数据类型,然后可以使用SET或SELECT语句为变量初始化;局部变量必须以“@”开头,而且必须先声明后使用。

    声明格式:

    DECLARE @变量名 变量类型[,@变量名 变量类型…]

    (1)变量名必须以 at 符 (@) 开头

    (2)变量类型可以是任何系统提供的公共语言运行时 (CLR) 用户定义类型或别名数据类型。变量不能是 textntextimage 数据类型。

    (3)要声明多个局部变量,请在定义的第一个局部变量后使用一个逗号,然后指定下一个局部变量名称和数据类型。

    如: DECLARE @LastName nvarchar(30), @FirstName nvarchar(20), @StateProvince nchar(2);

    (4)声明变量时,其值设置为 NULL。

    (5)在批处理中可声明的局部变量的最大值是 10,000。

    (6)Tansact-SQL 系统函数的名称以两个 at 符号 (@@) 打头。早期版本中,@@functions 被称为全局变量,但它们不是变量,也不具备变量的行为。@@functions 是系统函数,它们的语法遵循函数的规则。

    初始化:

    局部变量不能使用“变量=变量值”的格式进行初始化,必须使用SELECT或SET语句来设置其初始值(SET 语句是为变量赋值的首选方法)。

    初始化格式:

    SELECT @局部变量=变量值

    SET @局部变量=变量值

    如果在单个 SELECT 语句中有多个赋值子句,则 SQL Server 不保证表达式求值的顺序,只有当赋值之间有引用时才能看到影响。

    如果 SELECT 语句返回多行而且变量引用一个非标量表达式,则变量被设置为结果集最后一行中表达式的返回值。

    例如,在此批处理中将 @EmpIDVariable 设置为返回的最后一行的 EmployeeID 值,此值为 1:

    USE AdventureWorks;
    GO
    DECLARE @EmpIDVariable int;
    
    SELECT @EmpIDVariable = EmployeeID
    FROM HumanResources.Employee
    ORDER BY EmployeeID DESC;
    
    SELECT @EmpIDVariable;
    GO
  • 相关阅读:
    foreach next 操作数组指针移动问题,多个数连加,连除,连减,连乘php版本
    mysql 5.7 laravel json类型数据相关操作
    rbac权限控制,基于无线分类
    基于bootstrap-treeview做的一个漂亮的无限分类树层级联动菜单
    css页面字体替换源代码和页面显示不一样问题解决
    centos6.8 编译安装lnmp php7.2 mysql5.6 nginx1.1.4
    mysql5.7采坑
    laravel整合vue 多入口解决
    使用mysql设计一个全局订单生产计数器
    laravel整合workerman做聊天室
  • 原文地址:https://www.cnblogs.com/dyufei/p/2573967.html
Copyright © 2011-2022 走看看