zoukankan      html  css  js  c++  java
  • Sqlserver 实际开发中表变量的用法

    在实际的开发中,我们可能遇到的问题是,在一个存储过程里面,我们可能要返回多段sql的结果集,但是最终怎么把多个结果集合成一块呢,那么这个时候临时表变量就来了

    declare  @tmp table   --声明表变量
    (
    id int identity(1,1),    --字段 必须和插入表变量里的数量一一对应
    Name varchar(60),
    [Description] varchar(60),
    Category varchar(60)
    )
    insert @tmp
         select Book.Name,Book.[Description],Book.Category from Book
    select * from  @tmp

    这是正常的sql写法,注意的是: select 到from中间的字段一定要和表变量里的字段一样,顺序,数量一一对应

    下面是存储过程的写法:

    create  proc P_getSelect
    as
    begin
    declare  @tmp table  --声明表变量
    (
    id int identity(1,1),
    Name varchar(60),
    [Description] varchar(60),
    Category varchar(60)
    )
    insert @tmp
         select Book.Name,Book.[Description],Book.Category from Book

    declare  @tmp2 table
    (
    id int identity(1,1),
    Name varchar(60),
    [Description] varchar(60),
    Category varchar(60)
    )
    insert @tmp2     --声明表变量2   这里为了方便  我把一个表的数据分别放到两个表变量里了
         select Book.Name,Book.[Description],Book.Category from Book
         select t.*,tt.* from @tmp t ,@tmp2 tt

    end

    exec P_getSelect

  • 相关阅读:
    Go学习2-切片
    Go学习1-MOD
    lua学习之逻辑运算符not,and,or
    google protobuf c++ 反射
    我要谴责一下,你们复制别人的答案好歹仔细看看
    远程登录redis
    openssl进行RSA加解密(C++)
    linux通过进程名查看其占用端口
    简体字丶冯|服务网关kong-docker安装
    简体字冯|docker-安装docker私有库
  • 原文地址:https://www.cnblogs.com/yachao1120/p/10402478.html
Copyright © 2011-2022 走看看