Как просмотреть код хранимой процедуры в SQL Server Management Studio - PullRequest
55 голосов
/ 04 января 2012

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

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

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

Спасибо.

Ответы [ 9 ]

102 голосов
/ 12 июня 2013

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

sp_helptext <name of your sp>
37 голосов
/ 04 января 2012

щелкните правой кнопкой мыши сохраненный процесс и выберите сценарий хранимой процедуры как СОЗДАТЬ в окно нового редактора запросов / Буфер обмена / Файл

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

Если вы хотите использовать более 1 процедуры одновременно, щелкните папку хранимых процедур, нажмите клавишу F7, удерживая клавишу CTRL, и выберите все нужные элементы, затем щелкните правой кнопкой мыши и выберите сценарий хранимой процедуры.как СОЗДАТЬ

33 голосов
/ 04 января 2012

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

enter image description here

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

11 голосов
/ 24 февраля 2015

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

SELECT OBJECT_DEFINITION (OBJECT_ID(N'Your_SP'))
7 голосов
/ 17 октября 2014

Используйте запрос ниже: -

SELECT object_definition(object_id) as [Proc Definition]
FROM sys.objects 
WHERE type='P'
5 голосов
/ 04 мая 2017

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

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

SELECT definition 
FROM sys.sql_modules 
WHERE object_id = OBJECT_ID('yourSchemaName.yourStoredProcedureName')

Больше информации о sys.sql_modules:

https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-sql-modules-transact-sql

4 голосов
/ 21 февраля 2017

sp_helptext 'your_sp_name'

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

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

или CTRL + T и затем Выполните.

1 голос
/ 26 февраля 2013

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

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

0 голосов
/ 28 декабря 2018

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

    USE [test] --Database Name
SELECT
    sch.name+'.'+ob.name AS       [Object], 
    ob.create_date, 
    ob.modify_date, 
    ob.type_desc, 
    mod.definition
FROM 
     sys.objects AS ob
     LEFT JOIN sys.schemas AS sch ON
            sch.schema_id = ob.schema_id
     LEFT JOIN sys.sql_modules AS mod ON
            mod.object_id = ob.object_id
WHERE mod.definition IS NOT NULL --Selects only objects with the definition (code)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...