SQL Server存储过程以返回多行

时间:2014-04-06 04:10:51

标签: sql-server-2008

我需要一个存储过程来返回10行数据,以显示从最新数据到最旧数据的页面。如果用户点击下一个或上一个按钮,我还需要获得接下来的10行然后接下来的20行。我知道如何一次获得一行,但我不知道如何返回多行。

ALTER PROCEDURE [dbo].[spGetRow] 
    @RowIdent int,
    @Formula varchar(5) output,
    @Batch# int output,
    @Status int output,
    @AutoMode int output,
    @Time datetime output,
    @Mixer varchar(3) output,
    @QCTech varchar(3) output,
    @Notes varchar(max) output,
    @Deck int output,
    @Ident int output
AS
BEGIN
    SET NOCOUNT ON;

    SELECT 
       @Formula = [Formula],
       @Batch# = [Batch#],
       @Status= [Status],
       @AutoMode = [AutoMode],
       @Time = [Time],
       @Mixer = [Mixer],
       @QCTech = [QCTech],
       @Deck = [Notes],
       @Deck = [Deck],
       @Ident= [Ident]
  FROM [VenturaQC].[dbo].[QCLog] 
  WHERE
       [Ident] = @RowIdent

  Return 1
END

示例QCLog表

Formula Batch#  Status  AutoMode    Time        Mixer   QCTech  Notes   Deck    Ident
F1235   1   2   1   2014-01-12 00:00:00.000 abc AT  Note 1  2   2
F1235   1   2   2   2014-01-12 00:00:00.000 abc AT  Note 2  2   3
F7175   1   1   1   2014-01-12 00:00:00.000 JH  EC  20#VIN. PER 5000#BATCH SIZE 5   6
F7175   1   2   1   2014-01-12 00:00:00.000 JH  KT  20#vin Resample 5   7
F7610   4   1   1   2014-01-12 00:00:00.000 JH  ec      6   8
F7610   4   5   1   2014-01-12 00:00:00.000 JH  KT      6   9

提前致谢 肯尼

2 个答案:

答案 0 :(得分:1)

“就这么做”。

存储过程返回select语句的结果。如果你的select语句选择了多行,那么将会返回惊喜。初学者的基本sql - 存储过程与否,所有select语句的工作原理相同。

  

如果用户点击下一个或上一个,我还需要获得接下来的10行然后接下来的20行   按钮。

无法在存储过程中执行:SP返回数据,然后完成。它不能等待按钮点击。

如果您需要进行分页,则需要在UI中执行此操作,然后使用相关参数调用SP(例如,跳过并获取随后放入SQL中的参数)。

答案 1 :(得分:1)