• SET ROWCOUNT,SET NOCOUNT


    SET ROWCOUNT (Transact-SQL)

    在停止特定查询之前要处理的行数(整数)。

    重要说明 重要提示

    在 SQL Server 的将来版本中,使用 SET ROWCOUNT 将不会影响 DELETE、INSERT 和 UPDATE 语句。 应避免在新的开发工作中将 SET ROWCOUNT 与 DELETE、INSERT 和 UPDATE 语句一起使用,并计划修改当前使用它的应用程序。 对于类似行为,请使用 TOP 语法。 有关详细信息,请参阅 TOP (Transact-SQL)

    要将此选项设置为 off 以便返回所有的行,请将 SET ROWCOUNT 指定为 0。

    设置 SET ROWCOUNT 选项将使大多数 Transact-SQL 语句在受到指定数目的行影响后停止处理。 其中包括触发器。 ROWCOUNT 选项对动态游标无效,但它可以限制键集的行集和不敏感游标; 所以应慎用此选项。

    如果行数值较小,则 SET ROWCOUNT 将覆盖 SELECT 语句 TOP 关键字。

    SET ROWCOUNT 的设置是在执行时或运行时设置,而不是在分析时设置。

    示例

    SET ROWCOUNT 在达到指定的行数后停止处理。 请注意,在下面的示例中有超过 500 行满足 Quantity 小于 300 的条件。 但是,应用 SET ROWCOUNT 后,您可以看到并未返回所有行。

    USE AdventureWorks2012;
    GO
    SELECT count(*) AS Count
    FROM Production.ProductInventory
    WHERE Quantity < 300;
    GO

    下面是结果集:

    Count

    -----------

    537

    (1 row(s) affected)

    现在,将 ROWCOUNT 设置为 4 并返回所有行,以演示仅返回 4 行。

    SET ROWCOUNT 4;
    SELECT *
    FROM Production.ProductInventory
    WHERE Quantity < 300;
    GO

    (4 row(s) affected)

     

     

     

     

     

    在存储过程中,经常用到SET NOCOUNT ON;

    作用:阻止在结果集中返回显示受T-SQL语句或则usp影响的行计数信息。
    当SET ONCOUNT ON时候,不返回计数,当SET NOCOUNT OFF时候,返回计数;

    即使当SET NOCOUNT ON 时候,也更新@@RowCount;

    当SET NOCOUNT on时候,将不向客户端发送存储过程每个语句的DONE_IN_proc消息,如果存储过程中包含一些并不返回实际数据的语句,网络通信流量便会大量减少,可以显著提高应用程序性能;

    SET NOCOUNT 指定的设置时在执行或运行时候生效,分析时候不生效。

    1 USE Northwind
    2 GO
    3 SET NOCOUNT OFF;
    4 SELECT TOP 5 OrderDate FROM Orders
    5 GO

    结果集显示:

    1 SET NOCOUNT ON;
    2 SELECT TOP 5 OrderDate FROM Orders
    3 GO

  • 相关阅读:
    随笔:自我介绍与软工 5 问
    作业要求 20200924-1 每周例行报告
    作业要求20200924-2 功能测试
    作业要求 20200924-5 四则运算试题生成,结对
    作业要求20200924-3 单元测试,结对
    作业要求20200924-4 代码规范,结对要求
    20200929-git地址
    作业要求 20200917-3 白名单
    作业要求 20200917-1 每周例行报告
    20200917-2 词频统计
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/4306722.html
Copyright © 2020-2023  润新知