Существует наивный, но удивительно эффективный способ решения проблемы упорядочения: продолжайте запускать каждый скрипт. Отдельный скрипт будет в конечном итоге работать (после того, как другие скрипты будут запущены первыми) или завершится неудачей> # скриптов (в этом случае это плохой скрипт). Возможно, вам удастся обнаружить плохой сценарий быстрее / проще, но мне это никогда не требовалось.
Если у вас есть 1 гигантский скрипт, он, вероятно, разделен по операторам GO. Этого должно быть достаточно, чтобы запустить его столько раз, сколько существует уникальных операторов GO. Любые попытки СОЗДАТЬ уже существующий объект потерпят неудачу и прервут пакет. Следующая партия будет работать непрерывно. В конце концов, у вас созданы необходимые объекты - и повторный запуск всего скрипта создаст зависимый объект (и произойдет сбой на уже созданных независимых объектах). Вы никогда не сможете запустить скрипт без ошибок.
Если вы хотите немного поразвлечься, вы можете разбить гигантский скрипт на отдельные партии и запускать их по отдельности. Теперь вы можете отследить, какой порядок нужен для их работы. Просто рекомбинируйте их в этом порядке и выведите новый скрипт. Он должен работать без ошибок.
Или потратить $ 500 на покупку инструмента, который уже делает это (RedGate, Visual Studio Ultimate / Database Edition и т. Д.).