create procedure test
@name varchar(100) output
as
begin
    select @name=name from [user] where id=1
end
go

解决方案 »

  1.   

    DECLARE crr_name CURSOR SCROLL FOR
    SELECT name FROM [user] where id=1  
    declare @name varchar(100)
    OPEN crr_name 
    WHILE @@fetch_status=0
    begin
       fetch next from crr_name into @name
       print @name
    end
    close crr_name  
    deallocate crr_name
      

  2.   


    create procedure test
    as
    begin
        if object_id('tempdb..#tmp1') is not null
        drop table #tmp1
        select name into #tmp1 from [user] where id=1
    end
    goselect name from #tmp1
      

  3.   

    谢谢各位,如果我用execute命令执行怎么获取呢
         exec('select * from [user] where id=1')
      

  4.   

    动态sql要传出参数需要使用sp_executesql
      

  5.   

    3: 输出参数eg:
    declare @num,
            @sqls
    set @sqls='select count(*) from  ' + @servername + '.a.dbo.b'
    exec(@sqls)
    我如何能将exec执行的结果存入变量@num中declare @num int,
            @sqls nvarchar(4000)
    set @sqls='select @a=count(*) from '+@servername+'.a.dbo.b'
    exec sp_executesql @sqls,N'@a int output',@num output
    select @num
      

  6.   

    如果你是VB那就用ADO的command 调用这个procedure ,然后添好参数,就可以接收它了嘛。
      

  7.   

    To WilliamsTaotao(威廉) ,你怎么用别人的分来问你的问题呢?
      

  8.   

    --那就不要写过程了declare @name nvarchar(100)
    declare @sqls nvarchar(4000)
    set @sqls='select @name=name from [user] where id=1'
    exec sp_executesql @sqls,N'@name nvarchar(100) output',@name output
    select @name