zoukankan      html  css  js  c++  java
  • 使用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)不支持在表变量之间进行赋值操作。另处,由于表变量作用域有限,并且不是持久数据库的一部分,因而不受事务回滚的影响。
  • 相关阅读:
    剑指offer-树的子结构
    剑指offer-二叉搜索树的后序遍历序列
    剑指offer-调整数组顺序使奇数位于偶数前面
    剑指offer-包含min函数的栈
    剑指offer-从上往下打印二叉树
    剑指offer-链表中倒数第k个结点
    剑指offer-合并两个排列的链接
    剑指offer-替换空格
    剑指offer-旋转数组的最小数字
    剑指offer-数字在排序数组中出现的次数
  • 原文地址:https://www.cnblogs.com/wangpei/p/1653334.html
Copyright © 2011-2022 走看看