SQL 2008 Express のデータベースのバックアップをスケジュールしたいと考えています。このジョブに適したストアド プロシージャを見つけました。そのための bat ファイルを作成し、実行したいのですが、次の sqlcmd ステートメントが失敗します。
sqlcmd -S '.\SQLEXPRESS' -Q "EXEC sp_BackupDatabases @databaseName='BonusPoint', @backupLocation='C:\DBBackup\', @backupType='F'"
ユーザー名とパスワードも試してみました:
sqlcmd -S '.\SQLEXPRESS' -U 'sa' -P '*******' -Q "EXEC sp_BackupDatabases @databaseName='BonusPoint', @backupLocation='C:\DBBackup\', @backupType='F'"
しかし、次のエラーが発生します:
http://tinypic.com/view.php?pic=29za3gn&s=5
データベースは同じマシンにあり、SSMS 経由でデータベースに接続できます。
編集:
最後に、次のステートメントを使用して sqlcmd 経由で DB に正常に接続しました。
sqlcmd -Snp:\\.\pipe\MSSQL$SQLEXPRESS\sql\query
答え1
元の試みの問題は、SQLCMD が単一引用符を好まない -S '.\SQLEXPRESS' を使用したことです。-S ".\SQLEXPRESS" のように二重引用符を使用すれば、おそらく機能したでしょう。