У меня есть следующая хранимая процедура:
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;
Я не хочу предполагать, я хочу знать.
Я щелкнул правой кнопкой мыши по хранимой процедуре и выбрал «Выполнить хранимую процедуру» ... Затем я установил для нее значение «ВЫКЛ» и получил:
(1 row(s) affected)
(1 row(s) affected)
Так что, установив его в положение ВКЛ или ВЫКЛ, он по-прежнему возвращал сообщения на вкладке «Сообщения» на панели результатов.
Еще один вопрос: когда (в каких сценариях) будет разумно использовать SET NOCOUNT OFF;
?