Выполните все файлы SQL в каталоге

У меня есть много .sql файлов, которые я должен выполнить для применения изменений, внесенных другими разработчиками на базе данных SQL Server 2005. Файлы называют согласно следующему шаблону:

0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...

Существует ли способ выполнить всех их сразу?

112
задан K.A.D. 6 April 2010 в 08:35
поделиться

3 ответа

Убедитесь, что у вас включен SQLCMD, щелкнув параметр «Запрос> Режим SQLCMD» в студии управления.

  1. Предположим, у вас есть четыре файла .sql ( script1.sql, script2.sql, script3.sql, script4.sql ) в папке c: \ scripts .

  2. Создайте главный файл сценария (Main.sql) со следующим:

    : rc: \ Scripts \ script1.sql 
    : rc: \ Scripts \ script2.sql 
    : rc : \ Scripts \ script3.sql 
    : rc: \ Scripts \ script4.sql 
     

    Сохраните файл Main.sql в самом каталоге c: \ scripts.

  3. Создайте пакетный файл с именем ExecuteScripts.bat со следующим:

     SQLCMD -E -d  -ic: \ Scripts \ Main.sql 
    PAUSE {{1 }} 

    Не забудьте заменить на базу данных, в которой вы хотите выполнять свои сценарии. Например, если база данных - «Сотрудник», команда будет следующей:

     SQLCMD -E -dEmployee -ic: \ Scripts \ Main.sql 
    PAUSE 
     
  4. Execute командный файл, дважды щелкнув его.

20
ответ дан 24 November 2019 в 02:48
поделиться

Насколько я знаю, вы можете использовать команды osql или sqlcmd для выполнения нескольких файлов sql. Недостатком является то, что вам придется создать сценарий для обеих команд.

Использование SQLCMD для выполнения нескольких сценариев SQL Server

OSQL (это для sql server 2000)

http://msdn.microsoft.com/en-us/library/aa213087 (v ​​= SQL.80) .aspx

2
ответ дан 24 November 2019 в 02:48
поделиться

Используйте FOR. Из командной строки:

c:\>for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f"
69
ответ дан 24 November 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: