Tôi đang tạo một thủ tục lưu sẵn trong cơ sở dữ liệu Sql Server 2008. Tôi muốn trả lại số hàng bị ảnh hưởng. Lựa chọn nào tốt hơn SET NOCOUNT OFF hoặc RETURN @@ ROWCOUNT?SET NOCOUNT OFF hoặc 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
Tôi biết rằng cả hai đều hoạt động, nhưng đó là lựa chọn tốt hơn và tại sao?
Sau khi thử một số, tôi đi đến kết luận SET NOCOUNT được TẮT theo mặc định trong các thủ tục được lưu trữ. Có thể thay đổi hành vi này bên trong cơ sở dữ liệu của tôi không?
Tôi không thấy bất cứ điều gì được đề cập về SET NOCOUNT bên trong tài liệu SqlCommand. Bạn có chắc rằng có cùng vấn đề với DataAdapters không? – niaher
Google it- bạn sẽ tìm thấy nhiều bằng chứng cho thấy: http://www.google.co.uk/search?client=firefox-a&rls=org.mozilla%3Aen-GB%3Aofficial&channel=s&hl=vi&q=ExecuteNonQuery+ NoCount & meta = & btnG = Google + Tìm kiếm. Tôi không thể chắc chắn đó là cùng một vấn đề như DataAdapters mà không thử nghiệm nó, nhưng tôi không thấy lý do tại sao sẽ có một lý do khác. – RichardOD