2013-04-29 47 views
0

因此,我們使用osql作爲構建過程的一部分在存儲過程中運行。我們使用具有sp文件夾的項目作爲構建包的一部分與應用程序一起發佈。OSQL不正確的語法 - 字符編碼 - 需要Powershell腳本幫助

我用Visual Studio創建了這個項目結構,並創建了sql腳本在procs中運行。

Visual Studio保存了UTF8格式的文件(默認情況下)。 osql在腳本中運行時抱怨第1行有語法錯誤的每個腳本,即

> Incorrect syntax near '´'.  1> 2> Msg 102, Level 15, State 1, 
> Server GBEPIAP-SQL01, Line 1 

相當莫名其妙。

無論如何;要解決這個問題,SQL腳本可以節省使用Unicode代碼頁1200(文件 - >高級保存選項)

等瞧 - 問題了

現在,這給我留下了一個更大的問題;我有超過200個需要打開的proc腳本,更改編碼並使用新編碼保存。

任何PowerShell專家都可以通過一個快速腳本將文件夾中每個文件的編碼更改爲Unicode Codepage 1200嗎?會幫我一個忙,同時也節省時間。

+1

OSQL是真的真的老了 - 你應該嘗試使用'sqlcmd'代替,這是更近,可能會更好地處理編碼 – 2013-04-29 11:21:40

+0

有效不夠評論。我可以向構建團隊提出建議,但這不在我的職權範圍內。 – 2013-04-29 11:26:13

回答

1

最後,我採用的方法記錄在這裏

Save all files in Visual Studio project as UTF-8

但不是UTF8;我指定了Unicode。

foreach (var f in new DirectoryInfo(@"...").GetFiles("*.sql", SearchOption.AllDirectories)) { 
    string s = File.ReadAllText(f.FullName); 
    File.WriteAllText (f.FullName, s, Encoding.Unicode); 
} 
+0

我正在使用記事本++爲我的腳本,並選擇編碼ANSII或UTF 8沒有BOM爲我工作。 – user2983931 2015-01-13 10:09:34