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

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

  • автор:

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

How to view the stored procedure code in SQL Server Management Studio

I am new to SQL Server. I am logged into my database through SQL Server Management Studio.

I have a list of stored procedures. How do I view the stored procedure code?

Right clicking on the stored procedure does not have any option like view contents of stored procedure .

sqluser's user avatar

10 Answers 10

I guess this is a better way to view a stored procedure’s code:

Right click on the stored procedure and select Script Stored Procedure as | CREATE To | New Query Editor Window / Clipboard / File.

You can also do Modify when you right click on the stored procedure.

For multiple procedures at once, click on the Stored Procedures folder, hit F7 to open the Object Explorer Details pane, hold Ctrl and click to select all the ones that you want, and then right click and select Script Stored Procedure as | CREATE To.

 

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

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

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

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

вы должны его «модифицировать». — Jeremy Holovacs

10 ответы

Думаю, это лучший способ просмотреть код хранимой процедуры:

Этот подход лучше всего работает, когда результаты отображаются в виде текста (Сочетание клавиш Ctrl + T). — Флорин Думитреску

@FlorinDumitrescu — я предпочитаю оставить его в режиме сетки и сделать следующее, что очень быстро и теперь является для меня вторым характером: sp_helptext YourSPName, F2, щелкните столбец заголовка «Текст», ctrl-c, щелкните в любом месте запроса, ctrl -a, ctrl-v, ctrl-home, ctrl-r. Причина, по которой мне это нравится, заключается в том, что я подсвечиваю синтаксис и мне не нужно прокручивать до начала файла. (И это немного лучше, чем ctrl-t, потому что он не добавляет к файлу «текст —————«.) — TTT

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

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

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

Хранимые процедуры

Нередко операция с данными представляет набор инструкций, которые необходимо выполнить в определенной последовательности. Например, при добавлении данных покупки товара необходимо внести данные в таблицу заказов. Однако перед этим надо проверить, а есть ли покупаемый товар в наличии. Возможно, при этом понадобится проверить еще ряд дополнительных условий. То есть фактически процесс покупки товара охватывает несколько действий, которые должны выполняться в определенной последовательности. И в этом случае более оптимально будет инкапсулировать все эти действия в один объект — хранимую процедуру (stored procedure).

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

Также хранимые процедуры позволяют ограничить доступ к данным в таблицах и тем самым уменьшить вероятность преднамеренных или неосознанных нежелательных действий в отношении этих данных.

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

Для создания хранимой процедуры применяется команда CREATE PROCEDURE или CREATE PROC .

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

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

Создадим хранимую процедуру для извлечения данных из этой таблицы:

Поскольку команда CREATE PROCEDURE должна вызываться в отдельном пакете, то после команды USE, которая устанавливает текущую базу данных, используется команда GO для определения нового пакета.

После имени процедуры должно идти ключевое слово AS.

Для отделения тела процедуры от остальной части скрипта код процедуры нередко помещается в блок BEGIN. END:

После добавления процедуры мы ее можем увидеть в узле базы данных в SQL Server Management Studio в подузле Programmability -> Stored Procedures :

 

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

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