@sqlgur808

Как запросом смотреть процедуры?

Умею, например через dbeaver, находить в databases -> schemas-> папку procedures и далее вручную нахожу нужную процедуру по наименованию и выбираю генерация SQL -> DDL.
Хотел бы ускорить этот процесс через запрос, в который я бы вставлял наименование процедуры и мне выдавало ответом свойства, что внутри этой процедуры...
Можно ли через запрос в бд просмотреть из чего состоит процедура, если да, то какой запрос писать, чтобы это смотреть.
Интересует синтаксис запроса для MS SQL и postgreSQL
Пример
61ee55dbb2428023718922.png
61ee55e48b6b4695151211.png
  • Вопрос задан
  • 5533 просмотра
Решения вопроса 3
Melkij
@Melkij
PostgreSQL DBA
postgresql
SELECT pg_catalog.pg_get_functiondef(pg_proc.oid)
FROM pg_proc
/* любые where по вкусу */

Так же известный как \sf в psql.
Ответ написан
Комментировать
@sqlgur808 Автор вопроса
Ответ найден самостоятельно для MS SQL.
Получаем код хранимой процедуры в T-SQL (ms sql):

EXEC sp_helptext 'имя_процедуры'

или другой вариант:
SELECT [text]
FROM syscomments sc
INNER JOIN sysobjects so
ON sc.id=so.id
WHERE
so.type = 'P' and so.name='имя_процедуры'


или ещё один вариант просмотра кода хранимой процедуры:

PRINT OBJECT_DEFINITION(OBJECT_ID(N'имя_процедуры','P'));

Бонус - для табличных функций/ пользовательских функций / триггеров
SELECT [TEXT]
FROM syscomments sc
INNER JOIN sysobjects so
ON sc.id=so.id
WHERE
name=<Имя триггера или функции> AND so.type IN ('TR','TF','FN')

описание объектов здесь (TR/ TF/FN) :
https://docs.microsoft.com/ru-ru/sql/relational-da...
Ответ написан
Комментировать
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы