是否将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在存储过程中声明,本地设置优先。 |
|
|
|
|
|