Sql-Server
sqlcmd -q 和引號的問題
我有一個 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 ''?''';"