CREATE procedure p_dddd
@pageName varchar
as
declare @pageId int
select @pageId=pageId,pageName,pageNum
from page 
where pageName=@pageName
select picId,picName,picNum,pageId  
from pic  
where pageId=@pageId 
GO
我想在执行第一个SQL语句的时候取出pageID然后做为第二个SQL语句的查询条件.我这样写总是提示"向变量赋值的 SELECT 语句不能与数据检索操作结合使用。" 请问有什么别的方法吗?
 

解决方案 »

  1.   

    --不用变量,改为子查询即可
    CREATE procedure p_dddd
      @pageName varchar
    as 
    select picId,picName,picNum,pageId  
    from pic where pageId in (
     select pageId,pageName,pageNum
     from page 
     where pageName=@pageName)
    go
      

  2.   

    CREATE procedure p_dddd
    @pageName varchar
    as
    declare @pageId int
    select @pageId=pageId     --,pageName,pageNum
    from page 
    where pageName=@pageNameselect picId,picName,picNum,pageId  
    from pic  
    where pageId=@pageId 
    GO
      

  3.   

    CREATE procedure p_dddd
      @pageName varchar
    as 
    select picId,picName,picNum,pageId  
    from pic where pageId in (
     select pageId from page 
     where pageName=@pageName)
    go
      

  4.   

    能不能不用子查询的方式.因为这两个SQL是并列方式的.我要同时返回这两个SQL语句的结果
      

  5.   

    CREATE procedure p_test
    @pageName varchar
    as
    declare @pageId int
    select pageId,pageName,pageNum
    from page 
    where pageName=@pageNameselect picId,picName,picNum,pageId  
    from pic a 
    where exists (select * from page b  where a.pageId=b.pageId and b.pageName=@pageName)
    GO
      

  6.   

    --同时返回这两个SQL语句的结果
    CREATE procedure p_dddd
      @pageName varchar
    as  
    select pageId,pageName,pageNum
    from page where pageName=@pageName
    union all
    select picId,picName,picNum 
    from pic where pageId in (
     select pageId from page 
     where pageName=@pageName)
    go