Мой текущий клиент борется с их процессом выпуска. Это немного сложно и немного неконтролируемо. Я пытаюсь решить проблемы процесса, но тем временем было бы полезно, если я мог бы соединить утилиту, которая могла бы просканировать их сценарии, искать зависимости и генерировать порядок, в котором должны работать те сценарии.
Вместо того, чтобы изобретать велосипед я думал, что попытаюсь найти код, который SQL Server использует для заполнения sys.sql_dependencies (1) (теперь, когда это на самом деле довольно точно в текущих версиях).
Действительно ли этот код доступен где-нибудь, поскольку скрытая системная хранимая процедура / инициировала, или это некоторый недоступный двоичный код где-нибудь?
Только, чтобы быть ясным, я ищу код, который заполняет системные таблицы, не кодируют, это получает доступ к ним для определения зависимостей. Другими словами, код, который работает, когда я делаю "CREATE PROCEDURE..."
Если существует открытый исходный код или стороннее приложение, которое уже имеет эту функциональность затем, я интересовался бы этим также.
(1) Хорошо, технически, sys.sql_dependencies является представлением по sys.sysmultiobjrefs так в конечном счете, я ищу код, который заполняет ту таблицу.
Я считаю, что это довольно недоступно.
Когда sys.dependencies меня не подводит, я пробовал трекер зависимостей Red-Gate , и мне это очень понравилось. Не с открытым исходным кодом, но тем не менее очень хороший инструмент.
Другой инструмент стороннего производителя, который может сканировать файлы исходного кода на предмет зависимостей, - это Apex SQL Clean
. Он покажет вам, в каком скрипте имеется ссылка на существующий объект базы данных, но не поможет при анализе самих скриптов (например, что, если оператор CREATE находится в одном скрипте, он должен выполняться сначала перед другим скриптом, который на него ссылается)