【问题标题】:How can I remove empty lines in SQL Server Management Studio (SSMS)?如何删除 SQL Server Management Studio (SSMS) 中的空行?
【发布时间】:2010-04-30 05:51:57
【问题描述】:

例如,我有很多带有很多空行的 .sql 文件,

WITH

  cteTotalSales (SalesPersonID, NetSales)

  AS

  (

    SELECT SalesPersonID, ROUND(SUM(SubTotal), 2)

    FROM Sales.SalesOrderHeader

    WHERE SalesPersonID IS NOT NULL

    GROUP BY SalesPersonID

  )

SELECT

  sp.FirstName + ' ' + sp.LastName AS FullName,

  sp.City + ', ' + StateProvinceName AS Location,

  ts.NetSales

FROM Sales.vSalesPerson AS sp

  INNER JOIN cteTotalSales AS ts

    ON sp.BusinessEntityID = ts.SalesPersonID

ORDER BY ts.NetSales DESC

有没有办法删除SQL Server Management Studio (SSMS) 中的这些空行?

这是我想要的:

WITH
  cteTotalSales (SalesPersonID, NetSales)
  AS
  (
    SELECT SalesPersonID, ROUND(SUM(SubTotal), 2)
    FROM Sales.SalesOrderHeader
    WHERE SalesPersonID IS NOT NULL
    GROUP BY SalesPersonID
  )
SELECT
  sp.FirstName + ' ' + sp.LastName AS FullName,
  sp.City + ', ' + StateProvinceName AS Location,
  ts.NetSales
FROM Sales.vSalesPerson AS sp
  INNER JOIN cteTotalSales AS ts
    ON sp.BusinessEntityID = ts.SalesPersonID
ORDER BY ts.NetSales DESC

【问题讨论】:

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


    【解决方案1】:

    您可以使用 SSMS 中的正则表达式来做到这一点:

    1. Ctrl-H 调出查找和替换窗口
    2. 选择 USE -> 正则表达式
    3. 将 ^\n 放入“查找内容”中
    4. 保留替换为空
    5. 点击替换(全部)

    祝你好运

    【讨论】:

    • 这应该是答案,不知道为什么另一个是。
    • @NoSaidTheCompiler 因为它是正确答案,所以在提出问题 6 分钟后给出,并允许提问者找到所需的具体解决方案。与提出相同解决方案的这个相反,复制提问者已经在接受的答案的评论中的信息,并且在答案被标记为接受后 4 个月给出。这可能是一个更好的答案,因为它更清晰,但我们可以看到这反映在投票中。一切正常,系统正常工作! :-)
    • @RyanfaeScotland - 完全有道理。感谢您花时间提供解释。
    【解决方案2】:

    我已经完成了以下步骤,它对我有用。

    1. 菜单工具自定义命令添加命令编辑删除空行OK.
    2. 删除空白行菜单出现在文件菜单旁边。
    3. 打开/选择查询 - 单击“删除空白行”。
    4. 享受吧。

    【讨论】:

    • 谢谢 - 这是唯一对我有用的东西 Regex 找不到 \^n
    • 奇怪,我也不得不求助于这个,因为 RegEx 不起作用。如果有人能解释为什么会很有趣。
    • 这是正确的答案——既然有内置的方法,为什么还要使用 RegEx?
    【解决方案3】:

    【讨论】:

    • 它似乎在这里工作 Find what: \n\n*Replace with: \n
    【解决方案4】:

    它不是内置的。查找和替换可以与正则表达式一起使用,狡猾的人可能有解决方案。

    【讨论】:

    • 谢谢,我自己解决了这个问题:使用正则表达式替换,并在行的开头找到换行符:^\n。一无所有。
    • @all,查看下一个答案的步骤
    【解决方案5】:

    菜单工具自定义命令添加命令编辑删除空行OK.

    【讨论】:

      【解决方案6】:

      Redgate Sql Toolbelt 对此很有用。这个包有Sql PromptSql Refactor,可以轻松格式化您的查询(即使是非常糟糕的格式)。它可以让你减少空间,根据你的需要移动东西。

      代码完成 在您键入时,SQL 提示提供不显眼的支持,建议适当的关键字、表、视图和其他数据库对象。它甚至建议基于外键约束或匹配列名的完整连接条件。在有意义的地方,SQL Prompt 将为您完成整个语句,例如 INSERT 或 ALTER VIEW。

      SQL 重新格式化(仅限专业版) Format SQL 命令重新格式化任何 SQL 以匹配您选择的编码风格。清晰准确的格式让您更容易理解复杂的 SQL,并有助于在整个团队中保持一致的风格。

      它不是免费的,但如果您有预算,绝对值得一试。

      【讨论】:

      • SQL有对应的“编码标准”吗?
      【解决方案7】:

      使用 Find and Replace 和很好的 '^\n' 并在 replace 中将其留空。

      另外,在查找选项中勾选使用正则表达式

      【讨论】:

      • 你所说的“很好”是什么意思? (请通过editing your answer 回复(没有“编辑:”、“更新:”或类似内容),不在 cmets 中)。
      猜你喜欢
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      相关资源
      最近更新 更多