У меня есть восстановленный пакетный файл:
SQLCMD -U sa -P password -S myhost -Q "ALTER DATABASE MyDB SET OFFLINE
WITH ROLLBACK IMMEDIATE; RESTORE DATABASE MyDB FROM DISK='C:\\Program
Files\\Microsoft SQL Server\\MSSQL12\\MSSQL\\Backup\\MyDB.bak' WITH
REPLACE; ALTER DATABASE MyDB SET ONLINE"
Мне удалось выполнить этот файл с помощью ant, build.xml, см. Ниже
<target name="revert_database" depends="setup_init" if="is.windows" >
<exec taskname="windows_install_omnigen:exec" dir="${setup.engine.dir}" executable="cmd">
<arg value="/C" />
<arg value="/C ${setup.engine.dir}\support\omnigen\shared\sql\restoredb.bat"/>
</exec>
</target>
Мне нужно определить этот запрос вцель, я пробовал много способов что-то подобное, но не получаю. Синтаксические ошибки из-за двойных кавычек в запросе ...
<target name="revert_database" depends="setup_init" if="is.windows" >
<exec taskname="windows_install_omnigen:exec" dir="${setup.engine.dir}" executable="cmd">
<arg value="/C SQLCMD -U sa -P password -S myhost -Q "ALTER DATABASE MyDB SET OFFLINE WITH ROLLBACK IMMEDIATE; RESTORE DATABASE MyDB FROM DISK='C:\\Program Files\\Microsoft SQL Server\\MSSQL12\\MSSQL\\Backup\\MyDB.bak' WITH REPLACE; ALTER DATABASE MyDB SET ONLINE" />
</exec>
</target>
Любой совет.Спасибо.