【问题标题】:Strange issue in SQL Management Studio IDE with CR instead of CRLF使用 CR 而不是 CRLF 的 SQL Management Studio IDE 中的奇怪问题
【发布时间】:2010-09-10 13:29:09
【问题描述】:

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

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

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

有人想吗?

【问题讨论】:

  • ANSI -> Unicode 转换? UNIX -> Windows 转换?很有可能,您在另一个编辑器中对其进行了编辑并保存了它,并且它以 UNIX 格式保存。
  • 也许,我想它可能是从 unicode 格式的文件中复制/粘贴的。它是一个非常标准的标题,所以它是一个明显的可能性。如果不是评论,我会接受它作为答案:-)
  • 我认为 Denis 可能是对的 - 我自己也有类似的问题,部署脚本会失败,似乎没有任何原因,结果总是 .sql 文件在不同的编辑器中被编辑过保存在不同的编码中

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    事实证明,当我在 Notepad++ 中时,我在 ">\n

    有趣的是,MSSMS 让我毫无怨言地保存了这个混合文件。

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

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      相关资源
      最近更新 更多