Как получить содержимое хранимой процедуры SQL в Powershell? - PullRequest
1 голос
/ 16 февраля 2009

Я извращен в том смысле, что ненавижу исследовать код и структуры базы данных в виде дерева, и я бы предпочел использовать для этого что-то вроде Powershell. Большая часть того, что мне нужно сделать в SQL, - это изучение того, какие столбцы есть в таблице или что делает конкретная хранимая процедура.

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

Ответы [ 2 ]

7 голосов
/ 16 февраля 2009

Если вы хотите запустить это на Sql Server 2008, тогда - это командлет , который поможет вам в этом.

Если вы используете Sql Server 2005, то вот страница со скриптом , которая поможет вам в этом.

[EDIT] Вы можете использовать SP sp_helptext для просмотра содержимого требуемой хранимой процедуры.

3 голосов
/ 16 февраля 2009

Они содержат текст sproc в таблице словаря данных. sys.sql_modules. Кроме того, это сообщение Stackoverflow содержит скрипт обратного инжиниринга словаря данных, который (среди прочего) получает текст определений представлений из этой таблицы - определения sproc обратного инжиниринга работает почти так же.

Минимальный скрипт для извлечения текста программы хранимой процедуры будет выглядеть так:

select m.definition
  from sys.objects o
  join sys.sql_modules m
    on o.object_id = m.object_id
  join sys.schemas s
    on s.schema_id = o.schema_id
 where s.name = 'foo'   -- Schema name
   and o.name = 'bar'   -- Sproc name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...