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

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

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

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

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

8 ответов

щелкните правой кнопкой мыши на сохраненном proc и выберите скрипт хранимой процедуры как создать в новое окно редактора запросов / буфер обмена / файл

вы также можете изменить, когда вы щелкните правой кнопкой мыши на имя

Если вы хотите более 1 proc за один раз, нажмите на папку хранимых процедур, нажмите F7, с CTRL и нажмите Выбрать все те, которые вы хотите, а затем щелкните правой кнопкой мыши и выберите скрипт хранимой процедуры как создать

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

опция называется Modify :

enter image description here

Это покажет вам код T-SQL для вашей хранимой процедуры в новом окне запроса с ALTER PROCEDURE . lead-in, поэтому вы можете легко изменить или изменить свою процедуру и обновить ее

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SQL-Ex blog

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

Как нам проверить эти изменения?

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

Следуя нашему примеру, если мы хотим подтвердить, что база данных имеет процедуру ExampleProc, обновленную до версии 1.2.3, и это указано в хранимой процедуре, мы могли бы увидеть следующее, заменив SEARCH_TEXT в скрипте выше на 1.2.3:

За пределами одной базы данных

Этого достаточно нам для поиска в одной базе данных, но у нас множество баз данных, которые мы хотим просмотреть. Нужно ли нам выполнять этот скрипт на каждой отдельной базе данных поочередно? Вы можете это делать, если хотите, но я не рекомендовал бы вам тратить так много времени. Вместо этого, я бы посоветовал сочетать скрипт выше с процедурой Aaron Bertrand sp_ineachdb.

Возможно, вам знакома системная процедура sp_MSforeachdb, которая доступна в SQL Server по умолчанию. Но вы можете не знать, что хотя она имеется и может быть обнаружена во многих источниках как решение для выполнения запроса на всех базах данных, она фактически не поддерживается. Кроме того, есть обстоятельства, когда базы данных могут быть пропущены, хотя её название — foreachdb — говорит об обратном. Microsoft не собирается тратить время на её исправление, поскольку она официально не поддерживается. Это означает, что вы можете либо самостоятельно проверять выполнение её работы, либо перейти к sp_ineachdb.

Использование sp_ineachdb в нашем примере будет выглядеть примерно так:

Вы можете также использовать @select_dbname=1 в sp_ineachdb, чтобы увидеть каждую базу данных, на которой выполняется ваш скрипт:

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

Как просмотреть код хранимой процедуры в 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 и щелкните, чтобы выбрать все, что вы хотите, а затем щелкните правой кнопкой мыши и выберите Скрипт хранимой процедуры как | СОЗДАТЬ В.

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

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