我有以下存储过程:SET NOCOUNT ON在SQL Server Management Studio中带回的消息
ALTER PROCEDURE [dbo].[spTitle_GetTitleById]
(
@TitleId INT
)
AS
BEGIN
SET NOCOUNT ON;
SELECT
Id,
Name,
Active
FROM
Title
WHERE
Id = @TitleId
END
我被告知使用SET NOCOUNT ON;
如果我不想被返回的消息做。我通过SQL Server Management Studio 2008运行了这个存储过程,并且收到以下消息:
(1 row(s) affected)
这仍然是一条消息。我们的一个数据库管理员说,这会是这样的,但是当它通过应用程序运行它不会返回任何消息。有没有办法,我可以测试一下,看看邮件是否被退回或没有时,我使用SET NOCOUNT ON;
我不想承担,我想知道的一种方式。
我右键点击存储过程,并选择执行存储过程......然后,我将它设置为OFF,和我:
(1 row(s) affected)
(1 row(s) affected)
所以将其设置为ON或OFF仍带回的消息结果面板中的消息选项卡。
又一个问题,什么时候是(在什么情况下)使用SET NOCOUNT OFF;
明智?
对不起,我可能是一个愚蠢的问题,我只想澄清:您运行存储过程本身('EXEC spTitle_GetTitleById')或'ALTER PROCEDURE'声明? – Quassnoi 2011-05-04 13:37:36
'SET NOCOUNT ON'复位当程序退出,它会调用堆栈。存储过程调用的任何一方是否还有其他语句? – 2011-05-04 13:39:10
@Quassnoi:不是一个愚蠢的问题。我右键单击它并选择执行存储过程。 – 2011-05-04 16:45:07