【问题标题】:sql server #regionsql服务器#区域
【发布时间】:2010-12-08 09:49:31
【问题描述】:

我可以在 sql server 编辑器中创建区域(如 C# 中的 #region#endregion)吗?

【问题讨论】:

  • 如果有人正在寻找 mysql 等价物,请使用 --#region Some text--#endregion

标签: sql-server region


【解决方案1】:

不是真的,对不起!但是……

添加beginend.. 并在begin 上添加评论会创建看起来像这样的区域...有点hack!

否则,您只能展开和折叠,您无法指定应该展开和折叠的内容。并非没有第三方工具,例如SSMS Tools Pack

【讨论】:

  • 确保在 Text Editor > Transact-SQL>Intellisense>Enable Intellisense 下启用了 Outline Statement
  • technet.microsoft.com/en-us/library/aa225998(v=sql.80).aspx。尽管所有 Transact-SQL 语句在 BEGIN...END 块中都有效,但某些 Transact-SQL 语句不应在同一个批处理(语句块)中组合在一起。谁能告诉我为什么不应该将它们分组?
  • 有用的 hack,但如果你想创建多个区域/部分,不要忘记在 end 语句之后添加 go
  • 很好!如果您只有评论块。你必须添加一些没有评论的东西。例如:打印
  • 这似乎并不适用于所有情况,除非我遗漏了什么。至少如果您使用CREATE SCHEMA,它似乎会中断。
【解决方案2】:

(我是SSMSBoost SSMS 插件的开发者)

我们最近在 SSMSBoost 插件中添加了对这种语法的支持。

--#region [Optional Name]
--#endregion

它还有一个选项,可以在打开脚本时自动“识别”区域。

【讨论】:

  • 可以,但不能即时运行。我必须关闭并重新打开文件才能折叠新创建的区域。
  • 工具栏上的 SSMSBoost 菜单中有一个“重新解析区域”选项。因此,无需重新打开文件。
  • 不幸的是,这有一个错误。如果该区域内的第一个代码语句被注释掉,则该区域最后被注释掉的代码行结束
【解决方案3】:

BEGIN...END 有效,您只需添加评论部分。最简单的方法是添加部分名称!另一种方法是添加注释块。见下文:

BEGIN  -- Section Name
/* 
Comment block some stuff  --end comment should be on next line
*/

 --Very long query
SELECT * FROM FOO
SELECT * FROM BAR
END

【讨论】:

    【解决方案4】:

    在 Sql Server Management Studio 中不是开箱即用的,但它是一个很好的 feature SSMS Tools Pack

    【讨论】:

    • 警告:60 天的演示费用为 30 欧元。
    • 最初发布时,扩展是免费的
    【解决方案5】:

    这只是在查询编辑器中使用文本缩进的问题。

    扩展视图:

    折叠视图:

    【讨论】:

      【解决方案6】:

      不,T-SQL 语言中不存在#region。

      您可以使用 begin-end 块进行代码折叠:

      ——我的地区 开始 -- 代码在这里 结尾

      我不确定我是否会推荐使用它们,除非代码不能通过其他方式进行可接受的重构!

      【讨论】:

        【解决方案7】:

        我使用了一种类似于 McVitie 的技术,并且只在相当长的存储过程或脚本中使用。我将像这样分解某些功能部分:

        BEGIN /** delete queries **/
        
        DELETE FROM blah_blah
        
        END /** delete queries **/
        
        BEGIN /** update queries **/
        
        UPDATE sometable SET something = 1
        
        END /** update queries **/
        

        这种方法在管理工作室中表现得相当不错,并且对审查代码非常有帮助。折叠的部分看起来有点像:

        BEGIN /** delete queries **/ ... /** delete queries **/
        

        我实际上更喜欢这种方式,因为我知道我的BEGINEND 这种方式匹配。

        【讨论】:

          【解决方案8】:

          另一种选择是

          如果您的目的是分析您的查询,Notepad+ 为 Sql 提供了有用的自动包装器。

          【讨论】:

          • 这对我很有帮助。谢谢
          猜你喜欢
          • 2013-12-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-15
          • 1970-01-01
          • 2013-07-23
          • 1970-01-01
          相关资源
          最近更新 更多