问题标签 [nocount]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
14183 浏览

sql-server - 在 SQL Server 查询中关闭 NOCOUNT 有哪些优点和缺点?

NOCOUNT在 SQL Server 查询中关闭的优点和缺点是什么?

0 投票
3 回答
39301 浏览

sql-server - MS SQL:抑制存储过程中调用的存储过程的返回值

我认为我遇到了与 kcrumley 在问题“通过经典 ASP 从另一个存储过程调用存储过程的问题”中描述的问题相同的问题。但是他的问题并没有真正包括解决方案,所以我再试一次,添加我自己的观察:

我有两个存储过程:

请注意,这两个过程都包含“SET NOCOUNT ON”。当我执行“call_return_1_and_return_2”时,我仍然得到两个记录集。首先是值 1,然后是值 2。

这使 ASP(经典的 VBScript ASP)脱离了轨道。

关于如何抑制第一个结果集的任何提示?为什么即使有 NOCOUNT 也存在?

跳过 ASP 中的第一个记录集不是一种选择。我需要一个“仅限数据库”的解决方案。

0 投票
5 回答
29360 浏览

sql - 设置 NOCOUNT 关闭还是返回 @@ROWCOUNT?

我正在 Sql Server 2008 数据库中创建一个存储过程。我想返回受影响的行数。SET NOCOUNT OFF 或 RETURN @@ROWCOUNT 哪个更好?

我知道两者都有效,但哪个是更​​好的选择,为什么?


经过一番尝试,我得出一个结论,即在存储过程中,SET NOCOUNT 默认为 OFF。是否可以在我的数据库中更改此行为?

0 投票
3 回答
2077 浏览

sql - SET NOCOUNT ON 和光标

我有一个存储过程,它调用多个存储过程,每个存储过程都将虚拟数据插入到一个表中。它工作正常,除了为光标中的每个循环显示单行结果 - 仅显示 ClubcardId = 2、ClubcardId = 3 等。

我已经使用了 SET NOCOUNT ON 但这似乎没有帮助。我正在寻找这个存储过程来创建几百万行,因此,SQL 打印每行的结果将是一个问题。

谁能建议如何防止显示输出。我已经复制了下面的父存储过程。我可以确定显示不是来自子存储过程 - lap_CreateClubcardTransaction。

如果我改变:

...到:

...然后我得到为光标的每一行显示的值'TEST'。

这是父存储过程:

0 投票
1 回答
1868 浏览

c# - Microsoft Sync Framework clashes with Nhibernate TooManyRowsAffectedexception

We are trying to implement the Microsoft Sync Framework into our application that persists it's domain using NHibernate.

One of the problems we encountered is that after the Sync Framework has altered your initial database structure (adding shadow tables and triggers) NHibernate seems to get upset by throwing an toomanyrowsaffectedexception when you try to insert objects into the database.

I found this article that has the solution of adding SET NOCOUNT ON and OFF around each update statement, but since the table structure is automatically generated by nhibernate and the sync triggers are automatically generated by the Sync Framework adjusting all triggers manually is not really an option.

http://www.codewrecks.com/blog/index.php/2009/03/25/nhibernate-and-toomanyrowsaffectedexception/

I tried setting the sql server 2008 property NOCOUNT on as described in this question: Where's the best place to SET NOCOUNT? but this resulted in a StaleStateException (-1 rows affected, expected 1).

Do you guys know if there is a way to configure the sync framework to automatically set these NOCOUNT statements in it's triggers? Or maybe is there a way to tell NHibernate to expect more/less rows to have been changed? Or maybe any of you have an automated script to add these NOCOUNT statements to the sync framework's triggers.

Thx in advance!

0 投票
1 回答
786 浏览

sql-server - 复制的系统触发器和 NOCOUNT 选项

在 Sql Server 2008 中设置复制时,系统会在每个复制的表上创建触发器,以便于将数据传输到订阅数据库。

SET NOCOUNT ON系统生成的触发器用于防止其操作影响函数值是否是预期的行为@@ROWCOUNT

背景

我将 NHibernate 与 Sql Server 2008 后端数据库一起使用。数据库启用了复制,它在已发布的表上创建系统生成的触发器,以方便将数据传输到订阅者。

没有复制一切正常,但复制 NHibernate 的行受影响的验证检查失败。除了受命令本身影响的行之外,ADO.Net 所说的受影响的行数似乎还包括受关联触发器影响的行。

在最初的问题中,我提到了@@ROWCOUNTSql Server 函数,但我真正的意思是 ADO.NetExecuteNonQuery方法返回的“受影响的行”值。我想我是在假设后者是由前者喂养的(可能是错误的)。

作为临时解决方案,我们修改了复制触发器以SET NOCOUNT ON在任何更新之前添加,并在任何更新完成后将其撤消。这暂时解决了我们的问题,但不是一个可行的永久解决方案。根据我们收到的建议和常识,不建议编辑系统触发器。

然而,这确实向我表明我们已经确定了确切的问题。受触发器影响的行将包含在当前命令的最终受影响行数中。NHibernate 预计只有已知数量的行会受到影响,它不会为任何未知的(就 NHibernate 而言)触发器添加到此计数。

我们目前正在研究涉及扩展 NHibernate 以添加处理或至少抑制此问题的能力的选项。我们的资源包括这个 SO question

我还发现这篇文章似乎暗示系统生成的触发器默认情况下已经将 NOCOUNT 选项设置为 ON,从而无需修改它们。这对我们来说绝对不是这样,所以我想知道为什么会这样。

  1. 系统生成的触发器的默认情况是什么?
  2. 行为是否可配置?
  3. 它是否取决于复制的类型——合并、事务?
0 投票
1 回答
740 浏览

sql - 全面更新存储过程以包括 SET NOCOUNT ON 的后果是什么

我们引入了一个新的数据访问框架来调用 SQL 存储过程。在调用返回记录集的存储过程时,我们遇到了该存储过程还执行某种更新(插入/更新/删除)的问题:

无法更改以 Command 对象为源的 Recordset 对象的 ActiveConnection 属性。

解决方案是将“SET NOCOUNT ON”添加到存储过程的顶部。这工作得很好,当然,它也有一个吹捧的性能增强。

我们建议开发人员在编写代码来调用现有存储过程时,还必须重构存储过程本身以包含SET NOCOUNT ON.

但是,这让我想知道,对所有存储过程执行全面更新以包含SET NOCOUNT ON. 在什么情况下这会破坏 SP 的功能?(假设 @@ROWCOUNT 函数即使在 SET NOCOUNT 为 ON 时也会更新)

一如既往的帮助,非常感谢。

0 投票
4 回答
31574 浏览

sql - 存储过程中是否需要“SET NOCOUNT OFF”?

我有很多程序set nocount on

是否有必要在存储过程结束时将其关闭?

例如:

0 投票
2 回答
693 浏览

.net - 覆盖使用游标的存储过程返回的行数

我有一个简化为以下代码的存储过程:

ExecuteNonQuery()仍然返回 -1!

我可以使用select @countExecuteScalar()想了解为什么我的代码不起作用。

似乎NOCOUNT OFF不会重置服务器行为,并且NOCOUNT ON仍然在原地。

0 投票
2 回答
1222 浏览

sql - Powershell 和 SQL Server - 设置 nocount

我正在编写一个 powershell 函数来从我们的数据库中检索学生列表,但返回的第一项始终是记录数。我想不出将 set nocount on 合并到脚本中的方法 - 有什么想法吗?

到目前为止的功能是:

它返回一个可爱的表格 - 但第一行始终是记录数。我只需要抑制该输出。