2
我想通過SQLCMD發出以下命令:在SQLCMD查詢中使用雙引號
IF DB_ID('My_DB') IS NOT NULL DROP DATABASE My_DB
有幾個注意事項,但...
- 數據庫名稱是動態如果它出現單引號內
- 這是運行該命令(BuildForge)將不替換可變程序
所以,我不能用:
-Q"IF DB_ID('${db_name}') IS NOT NULL DROP DATABASE ${db_name}
,因爲它會使用文字$ {} DB_NAME在單引號。我也不能使用:
-Q"IF DB_ID("${db_name}") IS NOT NULL DROP DATABASE ${db_name}
因爲SQLCMD在雙引號的開頭和結尾被絆倒。
我知道我可以創建一個腳本並傳入數據庫名稱的參數,但有沒有辦法在一個命令行中執行此操作,而無需腳本?任何方式來逃避雙引號等?有沒有一種BuildForge語法可以讓我正確地構建字符串?
謝謝!
Oooh! TRY ... CATCH可能有效。這裏的第一個命令可能會遇到同樣的問題 - BuildForge會爲$ {db_name}傳遞一個字面值,而不是將其更改爲變量值。 – 2010-07-21 18:16:56
第二種方法奏效,謝謝! – 2010-07-21 20:39:43