Как определить, используется ли в SQL Server 2005 функция хранимой процедуры или других объектов? - PullRequest
1 голос
/ 22 июля 2010

Мне нужно изменить функцию, и мне нужно знать, какое влияние это может оказать, просматривая другой объект, который в зависимости от этой функции, такой как хранимая процедура, функция и т. Д. И т. Д. Теперь, в любом случае, я могу найти это, которое может пройти через все коды? У меня есть много хранимых процедур / функций на этом.

Существует возможность в хранимом процессе, который имеет динамически сконструированный запрос, такой как @SQL = 'SELECT BLA BLA'

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

Спасибо

1 Ответ

5 голосов
/ 22 июля 2010

Сторонние инструменты

Redgate SQL Refactor или Трекер зависимостей может быть лучшим на самом деле.

Apex SQL Clean

Домашние решения

Вы можете использовать sp_depends, но это зависит от актуальной информации о зависимостях.

Запуск sp_refreshsqlmodule на всех объектах в базе данных может обновить это, если есть какая-либо недостающая информация о зависимости.

Это не найдет места, где вы использовали его в динамическом SQL. Вы можете быть в состоянии отследить их с помощью.

select object_name(object_id) 
from sys.sql_modules 
where definition like '%Your Function Name%'

Предполагая, что ваша динамическая строка SQL не разделяет имя функции причудливо.

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