【问题标题】:When I run simple select query, is it possible not to show number of rows affected at the end?当我运行简单的选择查询时,是否可以不显示最后受影响的行数?
【发布时间】:2012-11-06 19:19:57
【问题描述】:

我尝试使用 OSQL 将查询结果保存在文本文件中,然后将这些文本文件批量插入到表中。 OSQL 部分没问题,但是,在批量插入中,查询结果末尾影响的行数会导致错误。这是一个例子;

select item_number, description, price from item

3536114   Fruit mix     $3.99

3536229   DO 20 liquid  $9.99

3536251   Peppermint    $7.99

(3 rows affected) ------> I do not need this line.

【问题讨论】:

标签: sql sql-server tsql sql-server-2000


【解决方案1】:

像这样使用SET NOCOUNT

SET NOCOUNT ON;

这将:

停止指示受 a 影响的行数的消息 Transact-SQL 语句不会作为结果的一部分返回。

【讨论】:

    【解决方案2】:

    把它放在查询的顶部:

    SET NOCOUNT ON

    当 SET NOCOUNT 为 ON 时,不返回计数。当 SET NOCOUNT 是 OFF,返回计数。

    即使 SET NOCOUNT 为 ON,@@ROWCOUNT 函数也会更新。

    SET NOCOUNT ON 防止将 DONE_IN_PROC 消息发送到 存储过程中的每个语句的客户端。对于存储过程 包含几个不返回太多实际数据的语句, 或对于包含 Transact-SQL 循环的过程,设置 SET NOCOUNT 到 ON 可以提供显着的性能提升,因为网络 流量大大减少。

    SET NOCOUNT 指定的设置在执行或运行时生效 时间而不是解析时间。

    http://msdn.microsoft.com/en-us/library/ms189837.aspx

    【讨论】:

      【解决方案3】:

      您可以通过以下方式实现:-

       SET NOCOUNT ON
      

      当 SET NOCOUNT 为 ON 时,不返回计数(指示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。

      查看Documentation

      【讨论】:

        猜你喜欢
        • 2015-06-28
        • 2010-12-05
        • 1970-01-01
        • 2021-11-22
        • 1970-01-01
        • 1970-01-01
        • 2013-03-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多