Быстрый способ резервного копирования SQL SP и функций?

У меня длинный список SP (хранимая процедура) и функции на моем SQL-сервере db. Я мог бы сохранить их один за другим, щелкнув правой кнопкой мыши и установив скрипт XXX в Alter To. Есть ли какой-либо способ в TSQL запросить все SP и функции, чтобы сохранить их в xxx.sql-файлах?

Например, для sp_mySP1 я хотел бы сохранить его в sp_mySP1.sql, который является текстовым файлом. База данных слишком большая, и я бы хотел сохранить только SP и функции в качестве резервной копии исходных кодов.

В студии управления; найти базу данных, щелкнуть правой кнопкой мыши, задачи, сгенерировать скрипты;

next-next-next, пока не выберете «Типы объектов». Выберите «Хранимые процедуры» и «Пользовательские функции», затем «Выбрать все»; выбрать выход; идти!

1) Щелкните правой кнопкой мыши имя вашей базы данных в обозревателе объектов

2) Выберите «Задачи> Сгенерировать скрипты …» в контекстном меню

3) Выберите свою базу данных в списке и нажмите «Далее».

4) Нажмите «Далее» в опции «Выбор сценария»

5) В типах объектов проверьте сохраненные процедуры и пользовательские функции, нажмите «Далее»

6) Нажмите «Выбрать все» на экране «Сохраненные процедуры», нажмите «Далее».

7) Нажмите «Выбрать все» на экране «Выбор функций», нажмите «Далее».

8) Выберите «Script to New Query Window» и нажмите «Готово».

Вот процесс, который будет экспортировать некоторые типы данных.

if exists ( select * from sysobjects where name = 'ExportData_P' ) drop proc ExportData_P go CREATE PROC dbo.ExportData_P ( @tableName varchar(500), @where varchar(5000) = '(1=1)' ) AS BEGIN SET NOCOUNT ON DECLARE @sql varchar(8000) DECLARE @fieldList varchar(8000) DECLARE @valueList varchar(8000) SELECT @fieldList = '', @valueList = '' DECLARE @cols TABLE ( column_name nvarchar(250), data_type varchar(250) ) DECLARE @c nvarchar(250), @data_type varchar(250) INSERT INTO @cols select column_name, data_type from information_Schema.columns where table_name = @tableName WHILE EXISTS ( SELECT TOP 1 * FROM @cols ) BEGIN SELECT TOP 1 @c = column_name, @data_type = data_type FROM @cols SELECT @fieldList = @fieldList + @c + ', ', @valueList = @valueList + CHAR(13) + 'case when ' + @c + ' is null then ''NULL'' else '''''''' + ' + case when @data_type in ('text','ntext','char', 'nvarchar', 'varchar' ) then ' REPLACE ( REPLACE ( REPLACE ( ' else '' end + 'IsNull ( convert(varchar' + ( -- change this section to pass the length of varchar to convert case when @data_type in ( 'uniqueidentifier' ) then '(50)' when @data_type in ( 'text', 'ntext' ) then '(8000)' else '' end ) + ', ' + @c + '), '''' )' + -- end is null case when @data_type in ('text','ntext','char', 'nvarchar', 'varchar' ) then ', CHAR(39), CHAR(39)+CHAR(39) ), CHAR(13), '''' + CHAR(13) + ''''), CHAR(9), '''' + CHAR(9) + '''') ' else '' end + ' + '''''''' end + '', '' + ' DELETE FROM @cols WHERE column_name = @c END SELECT @fieldList = LEFT ( @fieldList, LEN(@fieldList)-1 ), @valueList = LEFT ( @valueList, LEN(@valueList)-1 ) SELECT @sql = 'select ''insert into ' + @tableName + ' (' + @fieldList + ') ' + ' VALUES ( ''+ ' + left ( @valueList, len(@valueList)-5) + ''') '' from ' + @tableName + ' WHERE ' + @where -- into [#mcoe_temp_export' + @tableName + '] print @sql EXEC ( @sql ) --EXEC ( 'select * from [#mcoe_temp_export' + @tableName + ']' ) SET NOCOUNT OFF END go 

Используйте как:

 exec ExportData_P 'tablename' 

вы можете запросить syscomments, чтобы получить текст создания объекта sql, но я не знаю, как сохранить их все в отдельных файлах, используя только TSQL.

 select * from syscomments 
Interesting Posts

Группировка типов ошибок по дате и приоритету

Досадный SQL-тупик

Как вернуть значение, существующее в SQL Server XPath?

Вставить строки в таблицу, если они не найдены в другой таблице

Вставить копию строки несколько раз с измененным 1 столбцом

Многочастный идентификатор не может быть привязан, когда делает разницу между двумя значениями в SQL Server 2005

Как я могу вывести список идентификаторов из таблицы SQL в виде строки значений, разделенных запятыми?

Изменяет ли значение коэффициента заполнения столбца Identity на Merge Replication?

структурируйте эти данные, чтобы их можно было прочитать рекурсивным cte? (SQL Server)

Exec <Хранимая процедура> чрезвычайно медленная

Поверните существующий столбец в первичный ключ

Ошибка получения данных

'Недопустимое имя столбца ' в вложенном запросе linq

Ошибка синтаксиса в sql, вызванная данными NULL

псевдоним WHERE для упрощения запроса

Давайте будем гением компьютера.