У нас есть несколько 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