Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Извлечение stored procedure  [new]
Shim
Member

Откуда:
Сообщений: 106
Подскажите, пожалуйста, каким образом можно извлечь stored procedure и UDF из БД. Мне нужно извлечь имя процедуры и само тело. Если можно то и дату изменения/создания (если такое есть).
19 май 09, 14:34    [7198495]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
"Извлечь" куда? Чем стандартные утилиты не подходят?
19 май 09, 14:35    [7198507]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
Shim
Member

Откуда:
Сообщений: 106
pkarklin
"Извлечь" куда? Чем стандартные утилиты не подходят?


Мне нужно извлечь процедуры и функции в java-програму. Для автоматического сохранения их на диске.
19 май 09, 14:42    [7198565]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36807
Shim
pkarklin
"Извлечь" куда? Чем стандартные утилиты не подходят?


Мне нужно извлечь процедуры и функции в java-програму. Для автоматического сохранения их на диске.
object_definition()

З.Ы. И зачем их сохранять на диск?
19 май 09, 14:44    [7198577]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
если сервер >= 2005, то OBJECT_DEFINITION(), тока на диск зачем их сохранять?
19 май 09, 14:47    [7198601]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
Shim
Member

Откуда:
Сообщений: 106
pkarklin
если сервер >= 2005, то OBJECT_DEFINITION(), тока на диск зачем их сохранять?

Все просто. Нужно сохранять на диск для того чтоб изменения могли быть видны через Систему управления версиями.
19 май 09, 15:01    [7198715]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36807
Shim
pkarklin
если сервер >= 2005, то OBJECT_DEFINITION(), тока на диск зачем их сохранять?

Все просто. Нужно сохранять на диск для того чтоб изменения могли быть видны через Систему управления версиями.
Очень интересно. Вообще, по идее, наоборот делают: все изменения пишут в скриптах, которые лежат в системе контроля версий, а потом уже на сервер накатывают.
19 май 09, 15:04    [7198740]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
Shim
Member

Откуда:
Сообщений: 106
А как достать список процедур, которые есть в базе?
19 май 09, 15:06    [7198756]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Shim
Все просто. Нужно сохранять на диск для того чтоб изменения могли быть видны через Систему управления версиями.


Что-то у Вас все-как то с ного на голову.
19 май 09, 15:06    [7198759]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
Сид
Member

Откуда: Москва
Сообщений: 305
Shim
А как достать список процедур, которые есть в базе?

select name
from sysobjects
where xtype='P'
19 май 09, 15:11    [7198797]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
19 май 09, 15:13    [7198811]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
iap
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
Точнее
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='PROCEDURE'
19 май 09, 15:15    [7198819]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Мдя... Запустите SSMS, и сгенерите скрипт на все хп, выгрузив каждую из них в отдельный файл.
19 май 09, 15:23    [7198866]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
Shim
Member

Откуда:
Сообщений: 106
iap
iap
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
Точнее
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='PROCEDURE'


Спасибо за ответы.
Такой способ как предлагает iap намного удобнее чем делать через OBJECT_DEFINITION(). Я сначала так и сделал, только потом заметил, что сохраняется не вся проедура. Если процедура большая, то ее обрезает. Так что, если кому надо, делайте через OBJECT_DEFINITION().
Хотя мне не удалось вытянуть скрипт создания таблици через OBJECT_DEFINITION(). Но пока это и не требуется
2 июн 09, 11:29    [7254882]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
tortoise
Member

Откуда: UK
Сообщений: 531
select object_id, definition from sys.all_sql_modules
2 июн 09, 17:52    [7257549]     Ответить | Цитировать Сообщить модератору
 Re: Извлечение stored procedure  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Shim
Так что, если кому надо, делайте через OBJECT_DEFINITION().


Это Ваш клиент ее обрезает, а сама функция возвращает nvarchar(max).
2 июн 09, 18:01    [7257613]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить