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

Откуда: Москва
Сообщений: 274
Доброе время суток!

Сабж.
Но соль в том, как можно узнать список хранимых процедур, в которых используется определенная таблица ?

Удачи!
19 авг 11, 10:32    [11144128]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
SELECT [name]
FROM [sys].[objects]
WHERE [type]='P' AND OBJECT_DEFINITION([object_id]) LIKE N'%ИмяТаблицы%';
19 авг 11, 10:46    [11144243]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
SuperJur
Member

Откуда: Москва
Сообщений: 274
iap,

ой, как спасибо!
19 авг 11, 10:47    [11144252]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
Шпунтик
Member

Откуда:
Сообщений: 148
SuperJur,

ещё можно ткнуть правой кнопкой по таблице и View Dependencies
19 авг 11, 10:51    [11144292]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
SuperJur
Member

Откуда: Москва
Сообщений: 274
Шпунтик,

:-), спасибо, я тыкал, но надо кодом. Даже профайлер запускал, чтобы посмотреть, что там делает машинка программным кодом.
19 авг 11, 11:00    [11144359]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
sysdepends
Guest
SuperJur
Шпунтик,

:-), спасибо, я тыкал, но надо кодом. Даже профайлер запускал, чтобы посмотреть, что там делает машинка программным кодом.

и что вам сказал профайлер?



зы

select * from sys.sysdepends
19 авг 11, 13:06    [11145608]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Где хранятся хранимые процедуры ?  [new]
Начинучка
Guest
iap,

сорри за некропостинг...

а если мне нужно табличное построчное представление исходного кода процедуры? как его можно получить ? из каких системных таблиц/представлениий?
16 янв 18, 11:02    [21109834]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Начинучка,

sys.syscomments
ну и помнить что больше 8000 будет хранится в нескольких записях. можете sp_helptext посмотреть код
16 янв 18, 11:06    [21109847]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Начинучка
а если мне нужно табличное построчное представление исходного кода процедуры? как его можно получить ?

sp_helptext
16 янв 18, 11:34    [21109936]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 774
select * from sys.all_sql_modules
select * from sys.sql_modules
16 янв 18, 16:32    [21111435]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
Начинучка
Guest
А подскажите, как лучше решить такого рода задачу:
1) Нужно получить список процедур в определенной БД по определенному условию.
2) Для всех процедур из этого списка получить их определение (текст процедуры).
3) Сохранить текст процедуры в файл. Каждую процедуры - в отдельный файл.

С первыми двумя пунктами, вроде разобрался с вашей помощью.
А третий как реализовать?
17 янв 18, 06:29    [21112541]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Начинучка
А подскажите, как лучше решить такого рода задачу:
1) Нужно получить список процедур в определенной БД по определенному условию.
2) Для всех процедур из этого списка получить их определение (текст процедуры).
3) Сохранить текст процедуры в файл. Каждую процедуры - в отдельный файл.

С первыми двумя пунктами, вроде разобрался с вашей помощью.
А третий как реализовать?


Можете создать пакет SSIS, или можете использовать powershell, sqlcmd и т.д.
http://www.sqlservercentral.com/articles/Export/147145/
Как сделать чтобы в отдельный файл, зависит от того что выбирите.
17 янв 18, 06:39    [21112549]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
iiyama
Member

Откуда:
Сообщений: 642
Начинучка,

1. Правый клик на БД->Tasks->GenerateScripts
2. Select specific -> Выделяете все процедуры
3. Files to generate = Singe file per object
4. Добавляете в свой репозитарий контроля версий (или просто копируете в нужную папку)
5. Переносите куда нужно только нужные (имя файла = названию объекта в БД)
6. Profit
17 янв 18, 10:07    [21112905]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
Начинучка
Guest
iiyama,

возьму на вооружение....



aleksrov,

а если через sqlcmd, как оно примерно могло бы выглядеть?
17 янв 18, 10:08    [21112913]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
человек_ниоткуда
Guest
Можно сделать SSDT Database Project (гуглим), а там сделать schema compare (гуглим).
17 янв 18, 11:40    [21113257]     Ответить | Цитировать Сообщить модератору
 Re: Где хранятся хранимые процедуры ?  [new]
Alexander Us
Member

Откуда:
Сообщений: 1095
Начинучка
А подскажите, как лучше решить такого рода задачу:
1) Нужно получить список процедур в определенной БД по определенному условию.
2) Для всех процедур из этого списка получить их определение (текст процедуры).
3) Сохранить текст процедуры в файл. Каждую процедуры - в отдельный файл.

С первыми двумя пунктами, вроде разобрался с вашей помощью.
А третий как реализовать?


Можете и .NET программку написать.
Курите классы SMO: например StoredProcedure.Script

примеры
17 янв 18, 17:14    [21114532]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить