sql – SET NOCOUNT OFF或RETURN @@ ROWCOUNT?

前端之家收集整理的这篇文章主要介绍了sql – SET NOCOUNT OFF或RETURN @@ ROWCOUNT?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在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在默认情况下关闭存储过程。是否可以在数据库中更改此行为?

解决方法

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

NOCOUNT选项可以手动设置为默认值为ON(Optons> Query Execution> sql Server> Advanced)。如果您这样设置,然后在存储过程中声明SE​​T NOCOUNT OFF,那么本地设置优先。

猜你在找的MsSQL相关文章