2

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

3 回答 3

6

SET NOCOUNT像这样使用:

SET NOCOUNT ON;

这将:

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

于 2012-11-06T19:22:43.173 回答
3

把它放在查询的顶部:

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

于 2012-11-06T19:21:51.613 回答
2

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

 SET NOCOUNT ON

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

检查此文档

于 2012-11-06T19:22:16.793 回答