因此,我们使用osql作为构建过程的一部分在存储过程中运行。我们使用一个带有sp文件夹的项目,该文件夹作为构建包的一部分与应用程序一起发布。
我使用Visual Studio创建了这个项目结构,并创建了在procs中运行的sql脚本。
Visual Studio使用UTF8格式保存文件(默认情况下)。 osql在脚本中运行时抱怨每一个脚本在第1行都有语法错误,即
> Incorrect syntax near '´'. 1> 2> Msg 102, Level 15, State 1,
> Server GBEPIAP-SQL01, Line 1
相当莫名其妙。
反正;要解决此问题,可以使用Unicode代码页1200(文件 - >高级保存选项)保存sql脚本
et voila - 问题消失了
现在这给我留下了更大的问题;我需要打开200多个proc脚本,更改编码并使用新编码保存。
任何powershell大师都可以通过快速脚本将文件夹中每个文件的编码更改为Unicode Codepage 1200吗?在帮我节省时间的同时帮我一个忙。
答案 0 :(得分: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);
}