Я восстановил свою базу данных разработки из производственной среды, и хранимых процедур, которые мне нужны в моей среде разработки, нет в моей производственной базе данных. Есть ли команда, которую Ii может использовать для импорта хранимых процедур разработки обратно в SQL Server. Всего около 88 файлов, так как каждая процедура находится в отдельном текстовом файле.
TIA! Крис





Ой, вы сделали болезненный способ создания скриптов. Вы должны были создать один сценарий для всех процедур, щелкнув правой кнопкой мыши базу данных в SSMS и выбрав «Задачи» -> «Создать сценарии».
Однако, если вы не хотите повторять этот процесс снова, откройте командную оболочку в папке и вспомните те старые дни пакетных файлов:
for %f in (*.sql) do sqlcmd -i %f
Это должно помочь!
При необходимости вы можете добавить в sqlcmd другие параметры (например, логин, пароль, имя сервера и т. д.). Чтобы увидеть список переключателей, просто выполните sqlcmd -h.
Щелкните правой кнопкой мыши базу данных разработки Hit Generate SQL Scripts, а затем выберите только сохраненные инструкции. Если вам нужна дополнительная фильтрация, вы даже можете выбрать ненужные хранимые процедуры.
Затем просто запустите этот запрос при разработке.
Я не знаю, есть ли способ сделать это из командной строки, но если у вас все они есть в текстовых файлах, совсем не должно быть сложно написать быстрое и грязное приложение, которое просто перебирает все файлы и запускает операторы create на вашем производственном сервере, используя любой язык, который вы выберете.
Для SQL 2K и 2K5 вам нужен этот инструмент.
Некоторое время назад я задал аналогичный вопрос и получил этот совет от Майка Л. (дайте ему голоса здесь).
Если, как и мне, вам приходится иметь дело с кучей файлов sql в иерархии папок, этот один лайнер объединит их в один файл с именем out.sql, который вы можете легко выполнить в студии управления SQL. Он будет включать только файлы, которые заканчиваются в .sql, и игнорировать такие файлы, как * .sqlsettings.
Запустите его из корневой папки иерархии файлов .sql. Убедитесь, что у вас нет ничего ценного в out.sql, так как он будет заменен.
del out.sql && for /f %f in ('dir /b /s ^| findstr /E \.sql') do type %f >> out.sql
Отличный инструмент ... Не совсем то, что я ищу. Спасибо за помощь