Доступен ли код, который SQL Server использует для заполнения sys.sql_dependencies? - PullRequest
1 голос
/ 24 июня 2010

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

Вместо того, чтобы заново изобретать колесо, я подумал, что попытаюсь найти код, который SQL Server использует для заполнения sys.sql_dependencies (1) (теперь, на самом деле, он довольно точен в текущих версиях).

этот код доступен где-то как скрытая системная хранимая процедура / триггер или это какой-то недоступный двоичный код где-то?

Просто чтобы было ясно, я ищу код, который заполняет системные таблицы, а не код, который обращается к нимопределить зависимости.Другими словами, код, который запускается, когда я делаю «CREATE PROCEDURE ...»

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



(1) Хорошо, технически, sys.sql_dependencies - это представление sys.sysmultiobjrefs, так что в конечном итоге я ищу код, который заполняет эту таблицу.

Ответы [ 2 ]

1 голос
/ 24 июня 2010

Другим сторонним инструментом, который может сканировать файлы исходного кода на наличие зависимостей, является Apex SQL Clean

Это покажет вам, в каком скрипте есть ссылка на существующий объект базы данных, но не поможет при любом анализесамих сценариев (например, если оператор CREATE содержится в одном сценарии, он должен выполняться в первую очередь перед другим сценарием, который ссылается на него)

1 голос
/ 24 июня 2010

Я считаю, что это довольно недоступно.

Когда sys.dependencies меня не устраивает, я пробовал Red-Gate's Dependency Tracker , и был очень доволен этим. Не с открытым исходным кодом, но тем не менее, очень хороший инструмент.

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