如何删除SSMS中的空行?

atr*_*lla 11 sql-server ssms sql-server-2005 sql-server-2008

我有很多.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
Run Code Online (Sandbox Code Playgroud)

是否可以在SQL Server Management Studio中删除这些空行?这就是我想要的:

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
Run Code Online (Sandbox Code Playgroud)

小智 25

您可以使用SSMS中的正则表达式来执行此操作:

  1. 按Ctrl-H以显示"查找和替换"窗口
  2. 选择USE - >正则表达式
  3. 把^ \n放在查找内容中
  4. 保持替换为空
  5. 单击替换(全部)

祝好运

  • 这应该是答案,不知道为什么另一个是. (2认同)
  • @NoSaidTheCompiler因为它是正确的答案,在询问问题后6分钟给出,并允许提问者找到所需的具体解决方案.与提出相同解决方案的那个相反,复制已经在提出的答案中已经在提问者评论中的信息,并且在答案被标记为被接受后4个月给出.这可能是一个更好的答案,因为它更清楚但我们可以看到这反映在投票中.一切都是应有的,系统正常运作!:-) (2认同)

小智 10

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

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


Dus*_*ine 5

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

  • 谢谢,我自己这样做:用正则表达式替换,并在行的开头找到换行符:^ \n.没有任何反击. (6认同)