2016-08-25 5 views
0

Ниже я пытаюсь выполнить пакетный файл, который будет создавать резервные копии моей базы данных, мне сказали, что использование sp_executesql - более безопасный способ выполнения этого. Проблема, с которой я сталкиваюсь, я не могу понять, какой неожиданный аргумент я передаю из кода ниже, используя sqlcmd. Я попытался найти информацию об этом, но не смог найти что-либо релевантное. Эта резервная копия предназначена только для локального экземпляра sqlexpress.Batch script/sp_executesql

SET spToExec =exec sp_BackupDatabases @databaseName='MY_DB', @backupType='F',@backupLocation='C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Backup\' 
ECHO spToExec value is: %spToExec % 
sqlcmd -E -S CompName\SQLEXPRESS -Q EXEC sp_executesql spToExec 
+0

Try 'dqlcmd -E -S CompName \ SQLEXPRESS -Q EXEC sp_executesql% spToExec%' –

+0

Вы имели в виду SQLCMD - E -S CompName \ SQLEXPRESS -Q EXEC sp_executesql% spToExec%? Я попробовал, но, к сожалению, это дало мне ту же проблему. – Manu

+0

'sqlcmd -E -S CompName \ SQLEXPRESS -Q EXEC sp_executesql% spToExec%' замещает пробел в имени переменной 'spToExec', если определено как' SET spToExec = exec ... ' – JosefZ

ответ

0

Я зафиксировал его, проблема была связана с опоясывающей запрос с двойными цитатами