• 使用table数据类型变量获得临时表


    转自:http://chenxing.blog.51cto.com/240526/44613

    Table数据类型是一种特殊的数据类型,用于存储结果集以供后续处理。该数据类型主要用于临时存储一组行,这些行将作为表值函数的结果集返回
    Table数据类型最主要的用途是作为多条数据记录的临时存储之处,此外还可以作为一个用户定义函数的返回值。
    用户需要注意使用DECLARE @local_variable来声明table类型的变量
    --声明TABLE变量@Var_tableGoods
    DECLARE @Var_tableGoods TABLE
                         (
                          订单编号 [int] NOT NULL,
                          书籍编号 [int] NOT NULL,
                          单价 [money] NOT NULL,
                          数量 [smallint] NOT NULL,
                          折扣 [real] NOT NULL
                          )
    --将”作者表”中统计的数据添加到TABLE变量@Var_tableAuthor
    INSERT INTO @Var_tableGoods
      SELECT * FROM 订货表
    --将TABLE变量@Var_tableAuthor中的内容显示出来
    SELECT * FROM @Var_tableGoods
    Table变量有以下优点:
    1)Table变量的行为类似于局部变量,定义有明确的作用域,该作用域为声明该变量的函数、存储过程或批处理的作用范围。
    2)在其作用域内,table变量可像常规表那样使用。该变量可应用于SELECT、INSERT、UPDATE和DELETE语句中用到表或表的表达式的地方。
    3)在定义table变量的函数、存储过程或批处理结束时,自动清除table变量
    4)在存储过程中使用表变量与使用临时表相比,减少了存储过程的重新编译量。
    5)涉及表变量的事务只在表变量更新期存在,这样就减少了表变量对锁定和记录资源的需求。
    6)不支持在表变量之间进行赋值操作。另处,由于表变量作用域有限,并且不是持久数据库的一部分,因而不受事务回滚的影响。
  • 相关阅读:
    PHP安装swoole
    linux系统占用问题排查
    使用PHP实现对Excel的文本替换操作
    java类 static成员变量 以及方法都会被子类继承吗
    FragmentTransaction的commit和commitAllowingStateLoss的区别
    【git】.gitignore文件
    java中lambda表达式双冒号::的使用
    java虚拟机常见的参数笔记
    Android 形状绘制 —— shape详解
    Git版本回退 初探
  • 原文地址:https://www.cnblogs.com/clq271520093/p/2512942.html
Copyright © 2020-2023  润新知