Поиск кода в проекте для хранимых процедур в базе данных - PullRequest
2 голосов
/ 08 сентября 2010

Существует ли простой способ выполнить поиск всех хранимых процедур в базе данных, чтобы определить, есть ли они где-нибудь в коде C # в Visual Studio?

Я использую Visual Studio 2008 (C #) с SQL Server 2005. Я просто хочу запросить базу данных и вернуть список всех хранимых процедур (я могу легко это сделать). Затем я хочу просмотреть весь проект, чтобы найти, какие хранимые процедуры используются в коде, а какие нет.

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

РЕДАКТИРОВАТЬ: Кажется, мой вопрос не был достаточно ясным. Я хочу получить список всех хранимых процедур в базе данных, которые не вызываются из кода. Я пытаюсь удалить весь неиспользуемый код и объекты базы данных, поэтому мне нужно знать, что не используется, а затем начать удаление.

Ответы [ 4 ]

4 голосов
/ 08 сентября 2010

Вы можете установить флажок «Использовать регулярные выражения» в диалоговом окне «Найти в файлах», а затем разделить имена с помощью |символ.

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

declare @list varchar(max)

select @list= isnull(@list + '|','') + name from sys.procedures

select @list AS [processing-instruction(x)] FOR XML PATH('')

Чтобы найти хранимые процедуры, на которые вообще нет ссылок в вашем коде, вы можете обратиться к третьей стороне.инструмент для этого, например Apex SQL Clean .

Вы можете обнаружить, что можете сделать все, что вам нужно сейчас, в течение бесплатного пробного периода.

2 голосов
/ 08 сентября 2010

используйте согласованное соглашение об именах, например, usp_

1 голос
/ 09 сентября 2010

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

Я надеялся найти более простой способ сделать это, но это работает для того, что мне нужно.

0 голосов
/ 08 сентября 2010

Зависит от того, как написан код.

Возможно, вы сможете найти что-то вроде .CommandText.

Другие вещи для поиска могут быть просто SqlCommand или .CommandType = CommandType.StoredProcedure.

Надеемсязатем вы можете получить все строки, содержащие имя SP, и затем вы сможете использовать регулярные выражения или аналогичные, чтобы получить только имена SP из строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...