Назад | Перейти на главную страницу

Дамп хранимых процедур SQL Server в файлы

Есть ли неинтерактивный (читай: способный к сценарию) способ сбросить все хранимые процедуры на диск?

Мы храним версии наших хранимых процедур в репозитории для отслеживания изменений, а также для целей развертывания и отката. В настоящее время всякий раз, когда мы хотим изменить хранимую процедуру, вы должны вытащить ее из БД непосредственно, когда вы начнете вносить изменения.

Что вы используете для своего репозитория? Я не понимаю, почему вы должны вытаскивать его из базы данных непосредственно, когда вы начинаете свои изменения. Если ваше управление выпуском таково, что они есть в вашем репозитории, вы можете просто вытащить файл из репозитория, запустить соединение в Management Studio и запустить ALTER PROCEDURE.

Тем не менее, вы можете извлечь код объекта, используя INFORMATION_SCHEMA.ROUTINES системный вид или syscomments Посмотреть.

С помощью INFORMATION_SCHEMA.ROUTINES это примерно так:

SELECT Routine_Definition
FROM INFORMATION_SCHEMA.ROUTINES
WHERE Routine_Type='Procedure'

С помощью syscomments это примерно так:

SELECT OBJECT_NAME(id),text
FROM syscomments 
WHERE OBJECTPROPERTY(id, 'IsProcedure') = 1