我遇到了一个奇怪的功能(可能与SQL Management Studio有关),关于在SQL语句末尾放置返回字符。虽然查询在ID中运行得很好,但有问题的功能却破坏了我们的部署脚本。
基本上,出于某种原因,某些行被看起来像回车符(CR)而不是CRLF终止,如下面两个文件之间的差异所示:
现在我知道如何修改构建脚本来捕获它,但我很好奇这是如何引起的。如何使用CR字符代替CRLF字符?
有人想到吗?
答案 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这样的常见内容可能会在不同的编辑器中以不同的方式实现