Честно говоря, я считаю, что отладка практически бесполезна. Я часто не хочу видеть переменные, а скорее записи, которые я бы вставлял в таблицу, обновлял или удалял.
Что я делаю, так это когда у меня сложный sp для отладки.
Сначала я создаю тестовую переменную. Я устанавливаю это = 1, когда я хочу проверить. Это обеспечит откат всех действий и транзакций в конце (не нужно фактически изменять базу данных, пока вы не убедитесь, что proc делает то, что вы хотите.), Убедившись, что для оператора commit требуется установить тестовую переменную до 0.
В конце процедуры у меня обычно начинается тест if = 1
КОНЕЦ утверждения и между началом и концом, я помещаю выбранные оценки для всех вещей, значения которых я хочу видеть. Это может включать в себя любые переменные таблицы или временные таблицы, записи в конкретной таблице после вставки, записи, которые я удалил, или все, что мне нужно увидеть. Если я тестирую несколько раз, я могу закомментировать ссылки на таблицы, которые, как я знаю, являются правильными, и сосредоточиться только на тех, которые я изменил, которые идут вокруг.
Теперь я вижу, каков эффект моего процесса, и изменения откатываются, если они были не правы. Чтобы фактически зафиксировать изменения (а не увидеть промежуточные этапы), я просто изменяю значение тестовой переменной.
Если я использую динамический SQL, у меня также есть переменная отладки, которая вместо выполнения динамического SQl просто выводит результаты на экран. Я нахожу все это гораздо более полезным при отладке сложного сценария, чем точки останова, которые показывают мне значение переменных.