Каков наилучший способ отладки хранимых процедур (и записи sprocs, которые легче отлаживать)? - PullRequest
21 голосов
/ 20 сентября 2008

Каковы хорошие методологии для создания sprocs, которые уменьшают трудность отладки? И какие есть инструменты для отладки хранимых процедур?

Возможно, самое главное, каковы признаки того, что ошибки происходят в sproc, а не в коде? Надеюсь, я здесь не так уж и плох. Голосует за ответы на любые из вышеперечисленных. Спасибо.

Что бы это ни стоило, я работаю в среде .NET, на серверах SQL.

Ответы [ 13 ]

1 голос
/ 20 сентября 2008

Вот несколько советов, которые мне сегодня повторили - если вы добавляете объединение к важному запросу в производственной базе данных, убедитесь, что это безопасно, когда в присоединяемой таблице есть нулевое поле.

LEFT JOIN

Я сломал важную страницу на 20 минут, прежде чем мы выяснили, что это было мое небольшое, быстрое изменение хранимой процедуры.

И обязательно проверяйте свои процедуры при внесении изменений. Для этого мне нравится помещать простой тестовый запрос в комментарии к процедуре. Obvisouly, я не смог сделать это сегодня: - (

/************************************
  MyProcName

  Test:
  -----
  exec MyProcName @myParam
*************************************/
1 голос
/ 20 сентября 2008

Вы можете использовать отладку Sql-сервера, но я обнаружил, что это является проблемой во всем, кроме самых прямых ситуаций (отладка на локальном сервере и т. Д.). Мне еще предстоит найти что-то лучше, чем операторы print, поэтому я буду с интересом следить за этой веткой.

1 голос
/ 20 сентября 2008

Несколько шаблонов, которые я успешно использовал, это «диагностический» или «тестовый» режимы и ведение журнала.

тестовый или диагностический режимы полезны, когда вы выполняете динамическое выполнение SQL. Убедитесь, что вы можете видеть, что вы собираетесь выполнить. Если у вас есть области, где вы должны (или должны) проверять наличие ошибок, рассмотрите возможность регистрации в таблице с достаточным количеством деталей, чтобы вы могли диагностировать происходящее.

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