建立一个存储过程包括如下:
1、建立一个临时表
2、将表a 中检索的符合条件的记录插入到该临时表中
3、将其它库中 表b(结构与表a相同)中符合条件的记录也插入到临时表中谢谢大家赐教!

解决方案 »

  1.   

    select *  into #temp  from tb
    insert into #temp(字段1 ,字段2)
    select 字段1 ,字段2  from 表B
      

  2.   

    create proc temptb
    begin
      select a表字段列表
      into #tb
      from a   union all
      select b表字段列表
      into #tb
      from b
    end
    go 
      

  3.   

    不好意思了,楼主,搞错了问题了。2楼的代码不正确。
    create proc temptb
    begin
      select a表字段列表
      into #tb
      from a    insert #tb(a表字段列表)  select b表字段列表 from b
    end
    go
      

  4.   

    只要加上前缀就好了
    如:master..spt_values
      

  5.   

    建立一个存储过程包括如下:
    1、建立一个临时表
    2、将表a 中检索的符合条件的记录插入到该临时表中
    3、将其它库中 表b(结构与表a相同)中符合条件的记录也插入到临时表中-----
      我觉得这个也可以一步步做,先建个临时表,表中的字段根据需要定
      然后先把a表中的需要,符合条件的插入临时表,然后在插入b 中的数据,不过由于b是其他库,所以要加上前缀哦,如 nothwind.dbo.b 
      

  6.   

    有2中方法
    1. 先定义好临时表如create table #tb(col1 int,...)然后在把A表,B表数据插入临时表
    insert #tb select 字段列表 from ta union all insert #tb select 字段列表 from tb2. 直接使用select 字段列表 into #tb from ta,这样会自动创建一个#tb(结构同select语句结果),然后在把B表数据插入,同1
      

  7.   

    我想继续请教一下,生成的临时表#tb,是不是在数据库里面看不到,而只能直接在asp(或其他语言的程序)中访问。
      

  8.   

    临时表都放于数据库tempdb中,在tempdb中可查到
    如果不是公共临时表,表名会加上长长的后缀。
    局部的临时表,在那个连接创建,就只有那个连接可调用。其它连接看不到
      

  9.   

    这里有实例代码!
    楼主可以参考下!--创建临时表
    create table #deletem
    (
    stuId char(6) not null,
    couId char(3) not null,
    score decimal(4, 1),
    )
    --将userinfo表中的数据插入到临时表中
    insert into #deletem select * from userinfo where id = 2
      

  10.   

    CREATE proc temptb
    as
    begin
      select *
      into #tb
      from itemstore
    where pname='适合于电路集成的PBG结构微带线'  
     insert #tb (pname,kname,kyear,kqno,auther,organ,keyname,abstract,fund,issn,cn,
    collecno,classfyno,pageno,linkname,ClkCount )
    select pname,kname,kyear,kqno,auther,organ,keyname,abstract,fund,issn,cn,
    collecno,classfyno,pageno,linkname,Clkcount
    from master..itemstore
    where pname='适合于电路集成的PBG结构微带线'  select *  from #tb
    end
    GO这是我写的存储过程(建在一个tree的库下面),没有找到临时表
      

  11.   

    本地表临时表(以#开头)在会话结束或者存储过称执行完成后自动销毁,所以看不到。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。临时表有两种类型:本地表和全局表。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。例如,如果创建了 employees 表,则任何在数据库中有使用该表的安全权限的用户都可以使用该表,除非已将其删除。如果数据库会话创建了本地临时表 #employees,则仅会话可以使用该表,会话断开连接后就将该表删除。如果创建了 ##employees 全局临时表,则数据库中的任何用户均可使用该表。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果您创建该表后另一个用户在使用该表,则 SQL Server 将在您断开连接并且所有其他会话不再使用该表时将其删除。