Sql-Server

sqlcmd -q 和引號的問題

  • June 19, 2015

我有一個 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 ''?''';"

引用自:https://dba.stackexchange.com/questions/104300