代码之家  ›  专栏  ›  技术社区  ›  Moyura

如何从存储过程中获取最高值

  •  0
  • Moyura  · 技术社区  · 2 年前

    有没有办法从存储过程中获取第一行?

    SQL Server存储过程

    EXEC SelectedJobTypeList
    ┌─────────────┬──────────────┐
    │ JobTypeCode | JobTypeName  |
    ├─────────────┼──────────────┤
    │             | Select All   |
    ├─────────────┼──────────────┤
    │ A1          | Road work    |
    ├─────────────┼──────────────┤
    │ B1          | Design       |
    ├─────────────┼──────────────┤
    │ C1          | Build        |
    └─────────────┴──────────────┘
    

    预期结果

    ┌─────────────┬──────────────┐
    │ JobTypeCode | JobTypeName  |
    ├─────────────┼──────────────┤
    │             | Select All   |
    └─────────────┴──────────────┘
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   tinazmu    2 年前

    您可以设置行数:

    set rowcount 1
    exec SelectedJobTypeList
    

    不要忘记将其设置为0,以将其设置回原来的值。

    如果此会话设置在存储的进程中被覆盖,则它将不起作用。

    SET ROWCOUNT n 导致SQL Server在返回指定数量的行后停止处理查询。

    同意@DaleK,这将影响程序内的所有选择(以及更新/插入/删除);如果proc做的不仅仅是简单的选择,它可能会产生意想不到的结果。

    如果需要更具体的帮助,请尝试共享程序代码。