У нас есть все наши Sprocs в отдельных файлах (с контролем версий и т. Д.), А не просто щелчок правой кнопкой мыши и редактирование прямо в базе данных!
У нас это есть в начале каждого скрипта SProc
EXEC dbo.MyLogScriptRun 'MySProcName', '091113'
это создает запись в таблице регистрации сценариев, что MySproc был создан, и его версия - 091113. Мы также записываем в систему текущего зарегистрированного пользователя, а также имя базы данных и сервера (что помогает при восстановлении базы данных на другом сервере, и нам интересно Каким образом MySproc стал ЭТОЙ версией на ЭТОМ сервере!)
Мы также используем это, чтобы проверить, какая версия установлена на конкретной клиентской БД, например при диагностике проблемы и в качестве основы для определения, какую исходную версию использовать (из управления версиями) для развертывания исправления; также для отправки обновления (чтобы мы могли определить, какие SProcs являются более новыми и должны быть включены в «пакет выпуска»)
Большую часть этого вы можете сделать с помощью триггеров DDL (начиная с SQL2005), но я не уверен, что смогу также сохранить номер версии.
Мы используем это для регистрации других скриптов, которые мы запускаем - скрипты манипуляции DDL запускаются во время обновлений и т. Д.
Запись в журнале написана так, что выполняется
EXEC dbo.MyLogScriptRun 'MySProcName'
предоставляет список из журнала. (т.е. я могу выделить первую часть строки, исключая номер версии, чтобы получить список, или выполнить всю строку, чтобы создать запись в журнале).