Получение информации о хранимых процедурах из .Net

2

Я пытаюсь получить некоторые данные, относящиеся к хранимой процедуре (или функции), обратно из базы данных, используя .Net. Первое, что мне нужно сделать, - получить хранимую копию из базы данных и превратить ее в строковый формат. Мне нужна следующая информация: возвращаемый набор столбцов, таблицы, используемые в SP, хранимые процедуры, вызываемые из SP. Единственный способ сделать это в тот момент, о котором я могу думать, - это разобрать текст и искать соответствия ключевых слов. Есть ли лучший способ сделать это?

Любые идеи?

Теги:

3 ответа

1
Лучший ответ

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

Чтобы получить список хранимых процедур, вы можете позвонить sp_help. Затем вы можете получить источник хранимой процедуры, используя sp_helptext@objname, являющимся именем хранимой процедуры).

Чтобы найти ссылочные таблицы, столбцы и т.д., вам нужно было бы проанализировать SQL script - вы могли бы сделать это самостоятельно, или есть более известные проекты, такие как ANTLR, который может упростить вам дело.

  • 0
    Спасибо @Rowland, sp_heltext выглядит очень полезным.
0

Если вы используете SQL Server, вы также можете попробовать хранимую процедуру sp_depends

EXEC sp_depends @objname = N'sproc_name' ;
0

Когда у вас есть SPROC как текст, вы можете использовать SQL Parser.

Есть несколько для .NET - см. ответы на этот вопрос SO (анализ синтаксиса SQL в .NET).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню