当我运行简单的选择查询时,是否有可能不显示最终受影响的行数?

时间:2012-11-06 19:19:57

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

我尝试使用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.

3 个答案:

答案 0 :(得分:6)

像这样使用SET NOCOUNT

SET NOCOUNT ON;

这将:

  

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

答案 1 :(得分:3)

将它放在查询的顶部:

SET NOCOUNT ON

  

当SET NOCOUNT为ON时,不返回计数。 SET NOCOUNT时   关闭,返回计数。

     

即使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

答案 2 :(得分:2)

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

 SET NOCOUNT ON

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

选中此Documentation