如何保存MS SQL查询中的代码大纲设置?
如何在SSMS中永久保留SQL查询的折叠大纲设置
我太懂这种烦恼了——手动用【Edit -> Outlining -> Hide Selection】弄的折叠区域,每次重启SSMS或者重新打开文件就清零,白忙活半天。其实SSMS本身支持用代码注释标记创建永久可折叠区域,下面给你两种实用方案:
方法1:用--#region和--#endregion定义永久折叠块
这是最靠谱的方式,SSMS会识别这些注释标记,自动生成可折叠大纲,而且会跟着SQL文件永久保存:
- 在需要折叠的代码段开头加:
--#region [可选的区域名称](名称方便你识别折叠内容) - 在代码段结尾加:
--#endregion
举个实际例子:
SELECT o.*, od.ProductID, od.Quantity FROM Orders o --#region 订单筛选条件 WHERE o.OrderDate BETWEEN '2023-01-01' AND '2023-12-31' AND o.CustomerID IN (SELECT c.CustomerID FROM Customers c WHERE c.Country = 'Canada') --#endregion CROSS APPLY ( --#region 关联最新订单详情 SELECT TOP 1 * FROM OrderDetails od WHERE od.OrderID = o.OrderID ORDER BY od.CreateTime DESC --#endregion ) AS latest_od
保存文件后,下次打开时这些区域会保留你上次设置的折叠状态,手动展开/折叠也完全不受重启影响。
方法2:全局开启“保留大纲状态”选项
如果你希望SSMS默认记住所有文件的大纲折叠状态,可以试试全局设置:
- 打开SSMS,点击【工具 -> 选项】
- 左侧导航栏找到【文本编辑器 -> Transact-SQL -> 大纲】
- 勾选“在打开文件时保留大纲状态”
- 点击确定保存设置
不过要注意:这个选项只对SSMS自动识别的大纲块(比如存储过程、函数)或者用#region标记的块生效,手动用Hide Selection创建的临时折叠还是不会保留,所以更推荐第一种方法。
内容的提问来源于stack exchange,提问作者PeterH
相关产品推荐
相关产品推荐

