У меня есть сценарий со многими сообщениями отладки, которые печатаются PRINT
функция. Там какой-либо путь состоит в том, чтобы отключить, который обменивается сообщениями? Я имею в виду что-то как SET NOCOUNT ON
, но для пользовательских сообщений.
Мне нравится устанавливать переменную, @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, метод переменных не будет работать.
Иногда самое простое решение оказывается лучшим ... Сделайте все ваши операторы печати, которые имеют дело с отладкой, следующим образом:
PRINT 'Debug ' + [WhateverStatementsYouDesire]
Затем вы можете выполнить поиск и заменить
PRINT 'Debug ' --> --PRINT 'Debug '
Выполните противоположные действия Find и Replace, чтобы снова включить их ...
(Я понимаю, что это не совсем то, о чем вы просили, но вот что я сейчас делаю. Если есть такой переключатель, который вы ищете, я бы, вероятно, перешел на этот метод.)
Вам нужно просто закомментировать все ваши PRINT
утверждения
Проще говоря, нет. Нет и #debug.
В пакете инструментов SSMS есть функция #debug, но я ее не использовал.