当前位置: 代码迷 >> Sql Server >> 怎么在SP中返回多行结果
  详细解决方案

怎么在SP中返回多行结果

热度:22   发布时间:2016-04-24 18:28:23.0
如何在SP中返回多行结果?
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO



ALTER            PROCEDURE dbo.gbat_getnum
       @tablename varchar(40),
       @colname varchar(40),
       @condition varchar(40),
       @condition_value varchar(40),
       @phonenum varchar(40) output,
       @phonepsw varchar(40) output,
       @yydz varchar(40) output,
       @book_name varchar(40) output,
       @book_mail varchar(40) output
    as
    set nocount on
    begin tran
    declare @SQL nvarchar(4000)
    set @sql='select top 1 @phonenum=phonenum ,@phonepsw=phonepsw ,@yydz=yydz, @book_name=book_name, @book_mail=book_mail from '+@tablename+' with(rowlock,readpast) where '+@condition+'='+@condition_value+' order by '+@colname+''
    exec sp_executesql @sql
                        ,N'@phonenum varchar(40) output,@phonepsw varchar(40) output,@yydz varchar(40) output,@book_name varchar(40) output,@book_mail varchar(40) output'
                        ,@phonenum output,@phonepsw output,@yydz output,@book_name output,@book_mail output
    set @sql='update '+@tablename+' set '+@colname+'='+@colname+'+1 where phonenum='''+@phonenum+''''
    exec(@sql)
    commit tran
     
    return



GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

上面的SELETE 返回1行记录 我使用top1 但是我如果像返回10行或者20行记录 应该怎么写?使用top 10好像不行哦~~
------解决方案--------------------
引用:
如果我调用10次存储过程得到10次返回值 是不是太恶心了点??


不是很恶心,而是很猥琐
  相关解决方案