SQL Server 2008 R2 Expressエディションを持っています。これはExpressエディションにすぎないため、タスクを自動化するためのSQL Serverエージェントはありません。
だから私はコマンドラインプログラムsqlcmd
で何かをしようとしました。
私はこのコマンドを実行しようとします:
use DB; EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)";
SQL Server Management Studioでこれを行うと、すべてが正常に動作します。しかし、sqlcmd
を介してこれを実行しようとすると、機能しません。
sqlcmd -S .\INSTANCE -Q "use DB; EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)";" -o C:\FOLDER\LOG_DB_REINDEX.txt
これは引用符のせいだと思います。私も `と 'を使おうとしましたが、うまくいきませんでした...
この問題を解決するにはどうすればよいですか?
これを使ってみてください。 ;-)
use DB; EXEC sp_MSforeachtable @command1=N'print ''?'' DBCC DBREINDEX (''?'', '' '', 80) ';
二重引用符は、次の引用符をエスケープします。
以下はsqlcmdの例です。
sqlcmd -S YOURSERVER -Q "use net_temp_test; EXEC sp_MSforeachtable @command1=N'print ''?''';"