2016-08-25 4 views
0

以下、私のデータベースをバックアップするバッチファイルを実行しようとしています。私はsp_executesqlを使ってこれを実行する方が安全です。私が抱えている問題は、sqlcmdを使用して以下のコードから予期せぬ引数が渡されていることがわかりません。私はそれに関する情報を検索しようとしましたが、関連するものを見つけることができませんでした。このバックアップは、ローカルのsqlexpressインスタンス用です。バッチスクリプト/ 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

てみ '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%' SET spToExec = exec ... 'として定義されている場合は、 'spToExec'変数名の後続スペースをメモしてください。 – JosefZ

答えて

0

私はそれを修正し、問題がダブルクォーテーションで