環境: 的Solaris 10,/用SQSH和freetds的交談的MS SQL Server的需要SQSH忽略一個美元符號
的(TLDR)問題bin/sh的腳本: 我需要sqsh忽略一個美元符號並將其傳遞給MS SQL。
背景: 我正在寫一些代碼,動態生成SQL來改變現有的索引,但在運行時,我得到的錯誤:
Msg 2727, Level 11, State 1
Server 'HOST\SERVER', Line 1
Cannot find index 'foo'.
我挖過來,看看有沒有指標名爲foo
,但是,其中一個名爲foo$bar
。
內置了輸入SQL輸入看起來很好...
% grep 'foo' input.sql
alter index [foo$bar] on ...
...並通過運行一個新的查詢會話或該SQL第三方應用成功。然而,當通過SQSH傳遞的結果沒有看到過去那個美元符號:
% sqsh -e -i input.sql -o output.sql
% grep 'foo' output.sql
1> alter index [foo] on ...
...這表明它的解釋$bar
作爲變量或東西。
任何人都知道如何讓sqsh逃脫一個美元符號或允許一個通過?我試過了引號和反斜槓的各種組合。
幫助我,stackoverlow。你是我唯一的希望。第5頁的狀態
這正是我試圖找到的文檔參考和解決方案。快速重寫並按預期運行SQL。非常感謝你。 –