Ниже я пытаюсь выполнить пакетный файл, который будет создавать резервные копии моей базы данных, мне сказали, что использование 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
Try 'dqlcmd -E -S CompName \ SQLEXPRESS -Q EXEC sp_executesql% spToExec%' –
Вы имели в виду SQLCMD - E -S CompName \ SQLEXPRESS -Q EXEC sp_executesql% spToExec%? Я попробовал, но, к сожалению, это дало мне ту же проблему. – Manu
'sqlcmd -E -S CompName \ SQLEXPRESS -Q EXEC sp_executesql% spToExec%' замещает пробел в имени переменной 'spToExec', если определено как' SET spToExec = exec ... ' – JosefZ