回答

收藏

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

技术问答 技术问答 204 人阅读 | 0 人回复 | 2023-09-14

我正在Sql Server 在2008年数据库中创建存储过程。我想回到受影响的行数。SET NOCOUNT OFF或RETURN @@
0 `$ K) s% Z4 `. KROWCOUNT哪个更好?
2 Z- `, n4 U, g8 U4 o3 ^% {5 c3 N8 \ALTER PROCEDURE [dbo].[MembersActivateAccount]    @MemberId uniqueidentifierASBEGIN    -- 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我知道两者都可以,但哪个是更好的选择,为什么?& a- D+ c+ u6 t% F3 V
经过一番尝试,我得出的结论是,在存储过程中默认情况下SET NOCOUNT为OFF。这种行为可以在我的数据库中改变吗?& _' A# a  L: j8 s
                                                                0 \/ Q2 W& v0 e: ?: n
    解决方案:                                                                : L) r* m9 W+ e2 ~  p) t9 r" ^
                                                                使用@@ RowCount。它清晰透明,完全由您的代码控制,而不是内置行为。
& ^: S8 I; V  X* E3 O4 TNOCOUNT该选项可以手动设置为默认值ON((Optons> Query Execution> SQL Server>/ M: j2 L9 S$ W" ^/ @) {
Advanced)。如果以这种方式设置,但SET NOCOUNT OFF在存储过程中声明,本地设置优先。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则