Как включить файл sql в другой файл sql в MS SQL?

У нас есть несколько SQL-скриптов, созданных на основе Entity Model. Их нужно запускать в определенном порядке. Кроме того, есть несколько скриптов заполнения, которые вставляют тестовые данные в базу данных.

В настоящее время мне нужно открыть каждый скрипт в Visual Studio и выполнить их в правильном порядке, нажав Выполнить (ctrl shift E).

Есть ли способ создать скрипт наподобие Master.sql, содержащий такие включения:

BEGIN TRANSACTION

ImportOrInclude myDB1.sql
ImportOrInclude myDB2.sql
...

COMMIT

Это требуется только для запуска из Visual Studio и не будет частью самого приложения.

Как это можно сделать?

РЕДАКТИРОВАТЬ 1

Я обнаружил, что существует что-то под названием SQLCMD Scripts, которое может импортировать файлы SQL: http://msdn.microsoft.com/en-us/library/aa833281%28v=vs.80%29.aspx

Но тогда мой вопрос заключается в том, как получить путь к каталогу текущего решения в Команда :r.

РЕДАКТИРОВАТЬ 2

Итак, я понял, как это сделать, не идеально, но это работает. Недостатком является то, что $(SolutionDir) не загружается из переменных Visual Studio, поэтому вам нужно настроить его вручную. Этот код предназначен для запуска в Visual Studio:

-- turn on in menu: Data -> Transact SQL editor -> SQL CMD mode
-- set this to path where the .sln file is.
:setvar SolutionDir C:\_work\projectname\

:!! echo $(SolutionDir)Maa.EntityModel.All\DbWEntityModel.edmx.sql 
:r $(SolutionDir)Maa.EntityModel.All\DbWEntityModel.edmx.sql 
go

:!! echo $(SolutionDir)Maa.EntityModel.All\DblQEntityModel.edmx.sql 
:r $(SolutionDir)Maa.EntityModel.All\DbQEntityModel.edmx.sql 
go

13
задан Wouter 29 October 2019 в 15:33
поделиться