我在Sql Server 2008数据库中创建一个存储过程。我想返回受影响的行数。哪一个更好的选择SET NOCOUNT OFF或RETURN @@ ROWCOUNT?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在默认情况下在存储过程中是关闭的。是否有可能改变我的数据库内的这种行为?
我没有在SqlCommand文档中看到有关SET NOCOUNT的任何提及。你确定存在与DataAdapter相同的问题吗? – niaher 2009-06-15 11:52:57
谷歌它 - 你会发现它有很多证据:http://www.google.co.uk/search?client=firefox-a&rls=org.mozilla%3Aen-GB%3Aofficial&channel=s&hl=en&q=ExecuteNonQuery+ NOCOUNT&元= btnG =谷歌+搜索。我无法确定它与DataAdapter没有经过测试的问题相同,但我不明白为什么会有其他原因。 – RichardOD 2009-06-15 12:00:00