2013-05-26 17 views
1

Есть ли простой способ вызвать один sql-файл из другого?Вызов одного файла sql из другого

У нас есть 2 sql-файла - a.sql и b.sql для наших продуктов. Локально мы создаем db A и B, а затем запускаем a.sql a b.sql.

Теперь есть еще одна команда, которая хранит файл sql-файла MasterFile.sql, который должен создать все dbs, необходимые для этого проекта, и настроить их. Теперь нам нужно убедиться, что содержимое наших файлов sql (a.sql и b.sql) также вызывается из этого файла masterFile.sql.

Оба a.sql и b.sql могут быть изменены в ближайшее время, поэтому мы не хотим вручную добавлять содержимое в файл MAsterFile.sql.

Каков наилучший способ для этого? Я пробовал делать sqlcmd, а также источник и: r a.sql, но никто из них не работал.

ответ

1

Как об использовании пакетного файла с 3-х линий

sqlcmd /S servername /d databaseName /E /i "master.sql" 
sqlcmd /S servername /d databaseName /E /i "a.sql" 
sqlcmd /S servername /d databaseName /E /i "b.sql" 
0

Вы можете использовать xp_cmdshell и sqlcmd, как описано в этом вопросе:

Is it possible to execute a text file from SQL query?

+0

Я попытался это, но все еще получаю ошибка .. «Недопустимое имя файла». – techieChamp

+0

OK..хорошая новость и не очень хорошая новость..Хорошая новость: она работает..Не так хорошая новость: я должен предоставить абсолютный путь для файла sql .. что-то вроде C: \ myDB.sql ... if Я предоставляю только имя файла или некоторый относительный путь, он не работает. – techieChamp

+0

@techieChamp Это потому, что скрипт выполняется в рабочем каталоге SQL-сервера ('C: \ WINDOWS \ system32' на моей машине). Если вы построите относительный путь, это должно быть относительно этого. – Optimax

Смежные вопросы