sql - 设置 NOCOUNT OFF 或返回 @@ROWCOUNT?

标签 sql sql-server tsql rowcount nocount

我正在 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(选项>查询执行>SQL Server>高级)。如果您以这种方式设置它,但随后在存储过程中声明SET NOCOUNT OFF,则本地设置优先。

关于sql - 设置 NOCOUNT OFF 或返回 @@ROWCOUNT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995589/

相关文章:

sql-server - SQL Server : how to remove leading 'A' s from base64 string

php - Laravel 查询 : BadMethodCallException in Builder. php 行 2258:

sql - 如何根据存储在Postgresql列中的json数据获取行

sql - 动态调整一个变量保存多个值的存储过程

c# - 在 Web 应用程序中将 SQL Server 数据导出到 Excel

sql - T-SQL : Additional predicates on JOINs vs. WHERE 子句

C#在LINQ中左加入

php - MariaDB INSERT INTO...SELECT...ON DUPLICATE KEY UPDATE 影响 0 行

c# - 将对象中的数据插入数据库

sql - 将多个重复字符替换为一个