SQL Management Studio IDE中使用CR而不是CRLF的奇怪问题

时间:2010-09-10 13:29:10

标签: sql-server sql-server-2005 ssms

我遇到了一个奇怪的功能(可能与SQL Management Studio有关),关于在SQL语句末尾放置返回字符。虽然查询在ID中运行得很好,但有问题的功能却破坏了我们的部署脚本。

基本上,出于某种原因,某些行被看起来像回车符(CR)而不是CRLF终止,如下面两个文件之间的差异所示:

alt text

现在我知道如何修改构建脚本来捕获它,但我很好奇这是如何引起的。如何使用CR字符代替CRLF字符?

有人想到吗?

2 个答案:

答案 0 :(得分:1)

ANSI - > Unicode转换? UNIX - > Windows转换?有可能,您在另一个编辑器中对其进行了编辑并保存,并以UNIX格式保存,例如。

答案 1 :(得分:1)

这正是我今天发生的事情,经过一番调查后我发现了一些细节:

我在同事的机器上使用了不同的编辑器。我习惯了EditPlus,这是Notepad ++(我认为)。经过一点编辑后,我将一些代码复制到MSSMS中,然后再进行一些编辑,然后保存为.sql文件。然后在打开文件的某个时候我得到了关于cr / lf问题的警告。在看到空白字符可见后,我注意到大多数行都是cr / lf,但只有少数只是lf。

事实证明,当我在Notepad ++中时,我进行了搜索并替换了“><”用“> \ n<” (将html标签分隔成新行)并在Notepad ++中“\ n”表示“lf”,而在editplus中,“\ n”表示“换行符”(无论您的文件当前使用的是什么,通常都是“crlf”)。

有趣的是,MSSMS允许我保存这个混合文件,没有任何抱怨。

所以,经验教训是使用类似正则表达式的表达式进行搜索和替换时,像\ n这样的常见内容可能会在不同的编辑器中以不同的方式实现