当前位置: 首页 > 面试题库 >

是否将NOCOUNT设置为OFF或返回@@ ROWCOUNT?

卫嘉佑
2023-03-14
问题内容

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

ALTER PROCEDURE [dbo].[MembersActivateAccount]
    @MemberId uniqueidentifier
AS
BEGIN
    -- Should I use this?
    SET NOCOUNT OFF;

    UPDATE [dbo].Members SET accountActive = 1 WHERE id = @MemberId;
    --Or should I SET NOCOUNT ON and use the following line instead?
    --return @@ROWCOUNT;
END

我知道两者都可以,但是哪个是更好的选择,为什么呢?

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


问题答案:

使用@@ RowCount。它是明确且透明的,它完全由您的代码控制,而不是内置行为。

NOCOUNT可以将该选项手动设置为默认值ON((Optons> Query Execution> SQL Server>
Advanced)。如果以这种方式设置,但随后SET NOCOUNT OFF在存储过程中声明,则该本地设置优先。



 类似资料:
  • 问题内容: 受此问题启发,在SET NOCOUNT上有不同的看法… 我们是否应该将SET NOCOUNT ON用于SQL Server?如果没有,为什么不呢? 它的作用编辑6,2011年7月22日 它抑制了任何DML之后的“受影响的xx行”消息。这是一个结果集,发送时,客户端必须对其进行处理。它很小,但是可以测量(请参见下面的答案) 对于触发器等,客户端将收到多个“受影响的xx行”,这将导致某些O

  • 问题内容: 我有一个已删除的文件存档数据库,其中存储了已删除文件的ID,我希望管理员能够恢复该文件(以及用于链接文件的相同ID)。我不想从整个表中删除identity_insert,因为增量为1的效果很好。在我的插入存储过程中,我有这样的东西 但是我不断收到同样的错误: 当IDENTITY_INSERT设置为OFF时,无法在表’TBL_Content’中为标识列插入显式值。 有什么帮助吗? 问题答

  • 问题内容: 受这个问题的启发,在SET NOCOUNT上有不同的看法… 我们是否应该对SQL Server使用SET NOCOUNT ON?如果没有,为什么不呢? 它的作用 编辑6,2011年7月22日 它抑制了任何DML之后的“受影响的xx行”消息。这是一个结果集,发送时,客户端必须对其进行处理。它很小,但是可以测量(请参见下面的答案) 对于触发器等,客户端将收到多个“受影响的xx行”,这将导致

  • 问题内容: 如果某些列返回FALSE,如何显示不同的值, 例如, COLUMN“ BASIC”返回FALSE,但我需要为用户显示YES或NO。情况为FALSE,请返回NO。 问题答案: 如果是varchar或bit,则处理NULL 或者如果只是一点点 编辑:

  • 问题内容: 帮助我与同事解决争执:在Java中将变量或集合设置为null是否有助于垃圾回收并减少内存使用?如果我有一个运行时间较长的程序,并且每个函数都可能被迭代调用(可能数千次):在将值返回给父函数之前将其中的所有变量设置为null是否有助于减少堆大小/内存使用量? 问题答案: 那是旧的表演传奇。在1.0天之内确实如此,但是对编译器和JVM进行了改进以消除这种需求(如果有的话)。如果您感兴趣,这

  • null 为了帮助进一步演示案例#2,3,4,下面的代码片段强调了当找不到客户时“可能发生”的几个选项...