Подтвердить что ты не робот

Как включить sql файл в файл sql? MS SQL

У нас есть несколько сценариев SQL, которые генерируются из модели сущности, и их нужно запускать в правильном порядке + есть несколько сценариев заполнения, которые вставляют некоторые тестовые данные в БД.

Теперь мне нужно открыть каждый из этих script в визуальной студии в правильном порядке и нажать выполнить SQL (ctrl shift E)

Есть ли способ создать что-то вроде Master.sql и внутри, я хотел бы использовать некоторые include. Что-то вроде:

BEGIN TRANSACTION

ImportOrInclude myDB1.sql
ImportOrInclude myDB2.sql
...

COMMIT

Мне нужно это только для запуска из visual studio, это не будет частью самого приложения.

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

Edit

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

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

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

Итак, я нашел, как это сделать, но не идеально, но работает. Плохо то, что $(SolutionDir) не загружается из переменных VS, поэтому вам нужно настроить его вручную. Этот код предназначен для работы в 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
4b9b3361

Ответ 1

Использовать утилиту sqlcmd.

Извлечение может показаться вам интересным:

-i input_file[,input_file2...]

Идентифицирует файл, содержащий пакет SQL-запросов или хранимых процедур. Можно указать несколько файлов, которые будут считаться и обрабатываться по порядку. Не используйте пробелы между именами файлов. sqlcmd сначала проверит, существуют ли все указанные файлы. Если один или несколько файлов не существуют, sqlcmd выйдет.

Пример:

sqlcmd -dDataBaseName -E -Stcp:ServerName\instancename -imaster.sql

Master.Sql:

:r file1.sql
:r file2.sql

Ответ 2

Используйте Business Intelligence Development Studio, которая поставляется с SQL Server для этого. Создайте новый пакет SSIS. Внутри этого пакета создайте несколько Execute SQL Tasks в потоке управления для каждого файла, который у вас есть, и установите SQLSourceType на FileConnection и выберите файл.