Как посмотреть процедуру в sql
Перейти к содержимому

Как посмотреть процедуру в sql

SQL — Урок 16. Хранимые процедуры. Часть 2.

То получим нечто такое же нечитабельное, как и при использовании операторов SHOW. Поэтому мы будем создавать запросы с условиями. Например, если мы создадим вот такой запрос:

То получим имена всех процедур всех баз данных, имеющихся на сервере. Нас, например, на данный момент интересуют только процедуры базы данных shop, поэтому изменим запрос:

Вот теперь мы получили то, что хотели:

Если же мы хотим посмотреть только тело конкретной процедуры (т.е. от begin до end), то мы напишем такой запрос:

И увидим вполне читабельный вариант:

  • db — имя БД, в которую сохранена процедура.
  • name — имя процедуры.
  • param_list — список параметров процедуры.
  • body — тело процедуры.
  • comment — комментарий к хранимой процедуре.

Комментарии вещь крайне необходимая, ведь через какое-то время мы может забыть, что делает та или иная процедура. Конечно, по ее коду можно восстановить нашу память, но зачем? Гораздо проще сразу при создании процедуры указать, что она делает, и тогда, даже по прошествии долгого времени, обратившись к комментариям, мы сразу вспомним, зачем эта процедура создавалась.

Создавать комментарии крайне просто. Для этого сразу после списка параметров, но еще до начала тела хранимой процедуры указываем ключевое слово COMMENT ‘здесь комментарий’ . Давайте удалим нашу процедуру sum_vendor и создадим новую, с комментарием:

А теперь сделаем запрос к комментарию процедуры:

Вообще-то, чтобы добавить комментарий, вовсе не обязательно было удалять старую процедуру. Можно было отредактировать имеющуюся хранимую процедуру с помощью оператора ALTER PROCEDURE . Давайте посмотрим, как это сделать, на примере процедуры ins_cust из прошлого урока. Эта процедура вводит информацию о новом покупателе в таблицу Покупатели (customers). Давайте добавим комментарий к этой процедуре:

И сделаем запрос к комментарию, чтобы проверить:

В нашей базе данных всего две процедуры, и комментарии к ним кажутся излишними. Не ленитесь, обязательно пишите комментарии. Представьте, что в нашей базе данных десятки или сотни процедур. Сделав нужный запрос, вы без труда узнаете, какие процедуры есть и что они делают и поймете, что комментарии — это не излишества, а экономия вашего времени в будущем. Кстати, а вот и сам запрос:

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

Научись программировать на Python прямо сейчас!

Если этот сайт оказался вам полезен, пожалуйста, посмотрите другие наши статьи и разделы.

Как просмотреть код хранимой процедуры в SQL Server Management Studio

Я новичок в SQL Server. Я вошел в свою базу данных через SQL Server Management Studio.

У меня есть список хранимых процедур. Как просмотреть код хранимой процедуры?

Щелчок правой кнопкой мыши по хранимой процедуре не имеет такой опции, как view contents of stored procedure .

10 ответов

Щелкните хранимую процедуру правой кнопкой мыши и выберите Сохраненная процедура сценария как | СОЗДАТЬ В | Новое окно редактора запросов / буфер обмена / файл .

Вы также можете выполнить Изменить , щелкнув хранимую процедуру правой кнопкой мыши.

Для одновременного использования нескольких процедур щелкните папку Хранимые процедуры , нажмите F7 , чтобы открыть панель сведений об обозревателе объектов, удерживайте Ctrl и щелкните, чтобы выбрать все необходимые, а затем щелкните правой кнопкой мыши и выберите Сохраненная процедура сценария как | СОЗДАТЬ в .

Это лучший способ:

Если у вас нет разрешения на «Изменить», вы можете установить бесплатный инструмент под названием «Поиск SQL» (от Redgate). Я использую его для поиска ключевых слов, которые, как я знаю, будут в SP, и он возвращает предварительный просмотр кода SP с выделенными ключевыми словами.

Гениально! Затем я копирую этот код в свой собственный SP.

Вы можете просмотреть весь код объектов, хранящийся в базе данных, с помощью этого запроса:

Exec sp_helptext ‘your_sp_name’ — не забывайте кавычки

В Management Studio по умолчанию результаты отображаются в виде сетки. Если вы хотите увидеть его в текстовом виде, перейдите по ссылке:

Запрос -> Результаты в -> Результаты в текст

Или CTRL + T, а затем «Выполнить».

Другие ответы, которые рекомендуют использовать обозреватель объектов и скрипт хранимой процедуры в новом окне редактора запросов, а также другие запросы, являются надежными вариантами.

Мне лично нравится использовать приведенный ниже запрос для получения определения / кода хранимой процедуры в одной строке (я использую Microsoft SQL Server 2014, но похоже, что это должно работать с SQL Server 2008 и выше)

Просмотр определения хранимой процедуры

В этой статье объясняется, как просмотреть определение процедуры в обозревателе объектов, с помощью системной хранимой процедуры, системной функции или представления каталога объектов в Редакторе запросов.

Перед началом работы Безопасность

Просмотр определения хранимой процедуры с помощью среды SQL Server Management Studio, Transact-SQL

Перед началом

безопасность

Permissions

Системная хранимая процедура: sp_helptext
Необходимо быть членом роли public. Определения системных объектов видимы для всех. Определения пользовательских объектов видимы владельцу объекта и получателям любого из следующих разрешений: ALTER, CONTROL, TAKE OWNERSHIP и VIEW DEFINITION.

Системная функция: OBJECT_DEFINITION
Определения системных объектов видимы для всех. Определения пользовательских объектов видимы владельцу объекта и получателям любого из следующих разрешений: ALTER, CONTROL, TAKE OWNERSHIP и VIEW DEFINITION. Эти разрешения неявно предоставляются членам предопределенных ролей базы данных db_owner, db_ddladmin и db_securityadmin .

Представление каталога объектов: sys.sql_modules
Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Azure Synapse Analytics не поддерживает системную хранимую процедуру sp_helptext . Вместо нее используйте представление каталога объектов sys.sql_modules . Примеры приведены далее в этой статье.

Просмотр определения хранимой процедуры

Можно использовать один из следующих способов:

Использование среды SQL Server Management Studio

Просмотр определения процедуры средствами обозревателя объектов

В обозревателе объектов подключитесь к экземпляру Компонент Database Engine и разверните его.

Последовательно разверните узел Базы данных, базу данных, которой принадлежит процедура, и узел Программирование.

Разверните раздел Хранимые процедуры, щелкните процедуру правой кнопкой мыши, нажмите Создать скрипт для хранимой процедуры, а затем выберите один из следующих пунктов: Используя CREATE, Используя ALTER или Используя DROP и CREATE.

Выберите New Query Editor Window (Окно редактирования нового запроса). При этом отобразится определение процедуры.

Использование Transact-SQL

Просмотр определения процедуры в редакторе запросов

Системная хранимая процедура: sp_helptext

В обозревателе объектов установите соединение с экземпляром компонента Компонент Database Engine.

На панели инструментов нажмите Создать запрос.

В окне запроса введите следующую инструкцию, которая использует системную хранимую процедуру sp_helptext . Измените имя базы данных и имя хранимой процедуры для ссылки на нужную базу данных и хранимую процедуру.

Системная функция: OBJECT_DEFINITION

В обозревателе объектов установите соединение с экземпляром компонента Компонент Database Engine.

На панели инструментов нажмите Создать запрос.

В окне запроса введите следующие инструкции, которые используют системную функцию OBJECT_DEFINITION . Измените имя базы данных и имя хранимой процедуры для ссылки на нужную базу данных и хранимую процедуру.

Представление каталога объектов: sys.sql_modules

В обозревателе объектов установите соединение с экземпляром компонента Компонент Database Engine.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *