OSQL语法不正确 - 字符编码 - 需要Powershell脚本帮助

时间:2013-04-29 11:14:51

标签: database visual-studio-2010 powershell osql

因此,我们使用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吗?在帮我节省时间的同时帮我一个忙。

1 个答案:

答案 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);
}