2013-04-17 2 views
0

Справочной информации:сделать Sqlcmd работы с пакетными сепараторами

Я пытаюсь создать пакетное задание для синхронизации хранимых процедур между различными серверами SQL. Я экспортировал все хранимые процедуры в отдельные .sql-файлы в свою папку. Всякий раз, когда я хочу создать новую хранимую процедуру или изменить ее для этих нескольких серверов, я тестирую ее на 1 сервере, пока не получаю ее так, как я ее хочу. После этого я экспортирую его в свою папку. Чтобы затем развернуть его на других серверах, я просто выполняю пакет - вот и все.


Я почти выяснил свою партию так, как хочу. Единственная проблема в том, что sqlcmd, похоже, не нравится стандартный разделитель партий «GO» ('Incorrect syntax near 'GO'.'). Поэтому я изменил разделитель пакетов по умолчанию на «RUN», заменил каждую команду «GO» на «RUN» в моих .sql-файлах и добавил -c RUN в мою команду sqlcmd.

Однако тогда он сообщает мне 'Incorrect syntax near 'RUN'.'.

Для целей тестирования я просто попытался его с 1 усаживается SQL файл, похожий на этот:

USE [MyDatabase] 
GO 

Даже это не сработало. Как я могу заставить его работать?

+0

имеет никто ответа на этот вопрос? –

ответ

0

Попробуйте оставить GO или RUN из этих сценариев. Вы можете изменить контекст базы данных без них.

Вы должны быть хорошо, чтобы сделать что-то вроде этого:

USE MyDatabase; 
--First query 

USE MyOtherDatabase; 
--Second query