У меня есть несколько файлов .sql, которые я должен запустить, чтобы применить изменения, сделанные другими разработчиками в базе данных SQL Server 2005. Файлы названы по следующему шаблону:
0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...
Есть ли способ запустить их все за один раз?
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P "password" -i"%%G"
Используйте FOR . Из командной строки:
источник
for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f" >> sql.log 2>&1)
Подробнее о перенаправлении вывода вы можете прочитать здесьВ SQL Management Studio откройте новый запрос и введите все файлы, как показано ниже.
Нажмите на SQLCMD Mode; файлы будут выделены серым цветом, как показано ниже
источник
Убедитесь, что у вас включен SQLCMD, щелкнув опцию Query> SQLCMD mode в студии управления.
Предположим, у вас есть четыре файла .sql (
script1.sql,script2.sql,script3.sql,script4.sql
) в папкеc:\scripts
.Создайте основной файл сценария (Main.sql) со следующим:
Сохраните Main.sql в самом каталоге c: \ scripts.
Создайте командный файл
ExecuteScripts.bat
со следующим именем :Не забудьте заменить
<YourDatabaseName>
на базу данных, которую вы хотите выполнять свои скрипты. Например, если база данных - «Сотрудник», команда будет следующей:Запустите командный файл, дважды щелкнув его.
источник
-b
примеру:SQLCMD -b -i "file 1.sql","file 2.sql"
Вы можете использовать ApexSQL Propagate . Это бесплатный инструмент, который выполняет несколько сценариев в нескольких базах данных. Вы можете выбрать столько скриптов, сколько вам нужно, и выполнить их для одной или нескольких баз данных (даже нескольких серверов). Вы можете создать список скриптов и сохранить его, а затем просто выбирать этот список каждый раз, когда вы хотите выполнять те же самые скрипты в созданном порядке (также можно добавить несколько списков скриптов):
Когда скрипты и базы данных выбраны, они будут показаны в главном окне, и все, что вам нужно сделать, это нажать кнопку «Выполнить», и все скрипты будут выполнены в выбранных базах данных в указанном порядке:
источник
Общий запрос
сохраните приведенные ниже строки в блокноте с именем batch.bat и поместите в папку, где находится весь ваш файл сценария
ПРИМЕР
для %% G в (* .sql) выполните sqlcmd / S NFGDDD23432 / d EMPLYEEDB -i "%% G" пауза
Иногда, если вам не удалось войти в систему, используйте приведенный ниже код с именем пользователя и паролем
для %% G в (* .sql) выполните sqlcmd / S NE8148server / d EMPLYEEDB -U Scott -P tiger -i "%% G" pause
После того, как вы создадите файл bat внутри папки, в которой находятся ваши файлы сценария, просто щелкните файл bat, и ваши сценарии будут выполнены
источник
Я написал утилиту с открытым исходным кодом на C #, которая позволяет перетаскивать множество файлов SQL и запускать их в базе данных.
Утилита имеет следующие особенности:
источник
Самый простой способ, который я нашел, включал следующие шаги (единственное требование - это быть в Win7 +):
Звучит долго, но на самом деле очень быстро .. (звучит долго, я описал даже самые маленькие шаги)
источник
Насколько я знаю, вы можете использовать команды osql или sqlcmd для выполнения нескольких файлов sql. Недостатком является то, что вам придется создать сценарий для обеих команд.
Использование SQLCMD для выполнения нескольких сценариев SQL Server
OSQL (это для sql server 2000)
http://msdn.microsoft.com/en-us/library/aa213087(v=SQL.80).aspx
источник
Шаг 1: скопируйте строки выше в блокнот, сохраните как летучую мышь.
step2: В папке abc диска d во всех файлах Sql в запросах, выполняемых на сервере sql.
Шаг 3: Укажите свой ip, идентификатор пользователя и пароль.
источник
Вы можете создать один сценарий, который будет вызывать все остальные.
Поместите в командный файл следующее:
Когда вы запустите этот командный файл, он создаст новый сценарий с именем
all.sql
в том же каталоге, где находится командный файл. Он будет искать все файлы с расширением.sql
в том же каталоге, где находится командный файл.Затем вы можете запустить все сценарии с помощью
sqlplus user/pwd @all.sql
(или расширить пакетный файл для вызоваsqlplus
после созданияall.sql
сценария)источник
Для выполнения каждого файла SQL в одном каталоге используйте следующую команду:
Эта команда создаст один файл SQL с именами каждого файла SQL в каталоге, добавленными знаком «@».
После
all.sql
создания просто выполнитеall.sql
с SQLPlus, это выполнит каждый файл sql вall.sql
.источник
Если вы можете использовать Interactive SQL:
1 - Создайте файл .BAT с этим кодом:
2 - Измените pwd и ServerName.
3 - Поместите файл .BAT в папку, содержащую файлы .SQL, и запустите его.
источник