У меня есть много .sql файлов, которые я должен выполнить для применения изменений, внесенных другими разработчиками на базе данных SQL Server 2005. Файлы называют согласно следующему шаблону:
0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...
Существует ли способ выполнить всех их сразу?
Убедитесь, что у вас включен SQLCMD, щелкнув параметр «Запрос> Режим SQLCMD» в студии управления.
Предположим, у вас есть четыре файла .sql ( script1.sql, script2.sql, script3.sql, script4.sql
) в папке c: \ scripts
.
Создайте главный файл сценария (Main.sql) со следующим:
: rc: \ Scripts \ script1.sql
: rc: \ Scripts \ script2.sql
: rc : \ Scripts \ script3.sql
: rc: \ Scripts \ script4.sql
Сохраните файл Main.sql в самом каталоге c: \ scripts.
Создайте пакетный файл с именем ExecuteScripts.bat
со следующим:
SQLCMD -E -d -ic: \ Scripts \ Main.sql
PAUSE {{1 }}
Не забудьте заменить
на базу данных, в которой вы хотите выполнять свои сценарии. Например, если база данных - «Сотрудник», команда будет следующей:
SQLCMD -E -dEmployee -ic: \ Scripts \ Main.sql
PAUSE
Execute командный файл, дважды щелкнув его.
Насколько я знаю, вы можете использовать команды osql или sqlcmd для выполнения нескольких файлов sql. Недостатком является то, что вам придется создать сценарий для обеих команд.
Использование SQLCMD для выполнения нескольких сценариев SQL Server
OSQL (это для sql server 2000)
http://msdn.microsoft.com/en-us/library/aa213087 (v = SQL.80) .aspx
Используйте FOR. Из командной строки:
c:\>for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f"