Отключить печать в SQL Server - PullRequest
5 голосов
/ 09 июля 2010

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

Ответы [ 4 ]

6 голосов
/ 09 июля 2010

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

По умолчанию / установить значение 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, метод переменной работать не будет.

3 голосов
/ 09 июля 2010

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

PRINT 'Debug ' + [WhateverStatementsYouDesire]

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

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

Сделайте противоположный поиск и замену, чтобы снова включить их ...

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

2 голосов
/ 09 июля 2010

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

1 голос
/ 09 июля 2010

Проще говоря, нет. Также нет #debug.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...