Отключите ПЕЧАТЬ в SQL Server

У меня есть сценарий со многими сообщениями отладки, которые печатаются PRINT функция. Там какой-либо путь состоит в том, чтобы отключить, который обменивается сообщениями? Я имею в виду что-то как SET NOCOUNT ON, но для пользовательских сообщений.

5
задан Lukasz Lysik 9 July 2010 в 12:45
поделиться

4 ответа

Мне нравится устанавливать переменную, @Debug tinyint в моих скриптах/SPs.

По умолчанию/установите это значение 0 для подавления сообщений, 1 для отображения сообщений.

Затем вместо использования PRINT используйте:

IF @Debug > 0 RAISERROR( 'Busy doing something...', 0, 1 ) WITH NOWAIT

Использование WITH NOWAIT заставляет сообщение отображаться немедленно, а не только при очистке выходного буфера.

По соглашению я использую @Debug = 1 для сообщений о ходе выполнения, @Debug = 2 для включения dynmaic SQL, @Debug = 3 для вывода результирует.

Конечно, если в скрипте есть пакетные терминаторы GO, метод переменных не будет работать.

6
ответ дан 18 December 2019 в 16:35
поделиться

Иногда самое простое решение оказывается лучшим ... Сделайте все ваши операторы печати, которые имеют дело с отладкой, следующим образом:

PRINT 'Debug ' + [WhateverStatementsYouDesire]

Затем вы можете выполнить поиск и заменить

PRINT 'Debug ' --> --PRINT 'Debug '

Выполните противоположные действия Find и Replace, чтобы снова включить их ...

(Я понимаю, что это не совсем то, о чем вы просили, но вот что я сейчас делаю. Если есть такой переключатель, который вы ищете, я бы, вероятно, перешел на этот метод.)

3
ответ дан 18 December 2019 в 16:35
поделиться

Вам нужно просто закомментировать все ваши PRINT утверждения

2
ответ дан 18 December 2019 в 16:35
поделиться

Проще говоря, нет. Нет и #debug.

В пакете инструментов SSMS есть функция #debug, но я ее не использовал.

1
ответ дан 18 December 2019 в 16:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: