在SQL中建立一个查询过程:WC_XM
怎样把这个查询过程当作一个临时表使用:
例如我想查询这个查询过程WC_XM 中有几条记录,如何写呢?

解决方案 »

  1.   

    use pubs
    goselect title_id, title into #T from titlesselect * from #T
      

  2.   

    不好意思,刚才一直不能登录,回帖。
    是存储过程
    EXEC WC_XM
    返回5条记录
      

  3.   

    titles 是表?
    WC_XM就是有很多条件,很烦的,所以求怎么简单点
    我就是想知道存储过程中WC_XM 中有几条记录,如果能像临时表那样用,那可太感谢了。
      

  4.   

    --1
    create table T(id int, name varchar(10))
    insert T select 1, 'AA'
    insert T select 2, 'BB'
    insert T select 3, 'CC'
    insert T select 4, 'DD'
    insert T select 5, 'EE'
    go
    --2
    create proc WC_XM
    as
    select * from T
    go
    --3定义一个与返回结果结构一样的表
    create table #T(id int, name varchar(10))
    go
    --4
    insert #T
    exec WC_XM
    go
    --5
    select count(*) from #T--6删除环境
    drop table T, #T
      

  5.   

    --这样就可以了呀:)
    EXEC WC_XM
    select @@rowcount
      

  6.   

    楼主,是要建视图吧
    create view test 
    as
    select a.name,b.name1 from a inner join b on a.id=b.id
    --以后查询时:
    select * from test
      

  7.   

    举个例子:
    已经建立了:WC_XM   存储过程
    CREATE PROC DBO.[WC_XM] @BH NVARCHAR(50),@BMBH NVARCHAR(50)             AS
    SET NOCOUNT ON
    SELECT A.*
    FROM 人员 A INNER JOIN 人员安排 B ON A.档案号=B.档案号
    WHERE DATEDIFF(DD,GETDATE(),CAST(A.有效期 AS DATETIME))<=30 AND B.状态<>'离职'
    AND A.岗位='管理' and b.部门<>'后勤' and ......(还有很多)需要建立另一个存储过程:XM_1
    要求:
    如果上面存储过程内有4个记录
    则返回:
    “本月查询有4个记录”
    如果没有记录,则返回
    “本月需要安排人员外出” 如果不能直接用WC_XM,
    就这样
    IF exists(SELECT A.*
    FROM 人员 A INNER JOIN 人员安排 B ON A.档案号=B.档案号
    WHERE DATEDIFF(DD,GETDATE(),CAST(A.有效期 AS DATETIME))<=30 AND B.状态<>'离职'
    AND A.岗位='管理' and b.部门<>'后勤' and ......(还有很多))
      begin
      select '本月查询有'+(SELECT count(a.*)
    FROM 人员 A INNER JOIN 人员安排 B ON A.档案号=B.档案号
    WHERE DATEDIFF(DD,GETDATE(),CAST(A.有效期 AS DATETIME))<=30 AND B.状态<>'离职'
    AND A.岗位='管理' and b.部门<>'后勤' and ......(还有很多))+'条记录'
      end
    else 
      select “本月需要安排人员外出” 这样是不是很烦的?简单的有没有啊?
      

  8.   

    declare @i int
    select * into #临时表名 from 表名
    set @i=count(1) from #临时表名
    print @i