【问题标题】:How to debug T-SQL with SQL Server Management Studio 2017?如何使用 SQL Server Management Studio 2017 调试 T-SQL?
【发布时间】:2019-08-19 02:09:30
【问题描述】:

SQL Server Management Studio 的最新更新日志(18.0 Preview 7) 宣布,T-SQL Debugger 已弃用。

未来有哪些选择?有人能理解这个决定吗?我担心删除这样的基础开发工具会影响许多开发人员。

【问题讨论】:

  • 不是答案,但您可以在此处添加到 cmets:feedback.azure.com/forums/908035-sql-server/suggestions/…
  • 我一定会把我当前的版本安全地保存在某个地方。我猜没有人会升级到那个版本...
  • 从 Visual Studio 数据库项目 (SSDT) 调试仍然有效,因此这是一种替代方法。
  • @JeroenMostert 可能是这样,但这也意味着我每次想要调试某些东西时都必须创建这样一个项目......我没有这方面的经验,你也可以用这个调试触发器吗例子?
  • 有些人会升级,以充分使用 SQL Server 2019 的新功能。但是,“SSMS 18.x 安装不会升级或替换 SSMS 17.x 或更早版本。SSMS 18.x与以前的版本并排安装,因此两个版本都可以使用。”

标签: sql-server tsql debugging ssms ssms-2017


【解决方案1】:

您只需下载 Visual Studio 2019 社区。​​p>

完成后,创建一个新项目并打开 SQL Server 对象资源管理器 (CTRL + S)。

您将能够看到您的 SQL Server 数据库列表,就像您在 SQL Server Management Studio 中所做的那样。

最后,左键单击一个数据库并选择“新建查询”。现在您可以像在 SSMS 中一样调试 T-SQL。

但调试器不适用于 Azure SQL

【讨论】:

  • 仅仅为了调试一个查询就需要付出很多努力(尤其是创建一个新项目)。如果它已经在生产中怎么办?
  • @Dai 正如 Piotr 在 cmets 中提到的:“在 SSDT 中你不需要创建项目,你可以使用服务器资源管理器连接到 SQL Server 并开始调试。”
  • 由于各种原因和权限,您仍然会经常面临无法启动远程 Transact-SQL 调试器的情况,删除调试器的做法非常愚蠢,调用了一项非常重要的功能已弃用。我认为最好不要使用 management studio 18 并返回上一个。第 18 版令人失望。
  • 这可能在开发环境中运行良好,我确实计划使用,但有时它非常方便地转到服务器,针对 prod 副本运行调试并修复。 SSMS 通常在服务器上。要求客户安装 VS.NET 会遭到茫然的注视、喘息或狂笑。是的,在 prod 服务器上调试可能是不好的做法,但有时在紧要关头你需要快速采取措施。移动数据,设置开发环境来模仿环境太慢了。拥有 SSMS 调试器真的很方便,这家伙会错过的。我希望 MS 能把它带回来。
【解决方案2】:
  • 看来微软可能暂时把debug的分支搬走了 从 SSMS18SQLServer 数据工具 (SSDT)
  • 根据 DBA Stackexchange 社区的开发者的说法,有 调试的另一种替代方法,因为 Debugger 在 SSMS18
  • 这里是显示如何实现调试的链接:How to add the Debug button to SSMS v18?

替代方案:??

  • 就在我认为不会很快解决这个问题的时候,令我惊讶的是,可能有一个解决方案。
  • 我最近在涉足此工具时遇到了一个工具 出于好奇,SSMS18 中的调试器事物,其名称为 SQL Complete.
  • Devart 公司显然专门从事数据库产品,并为各种主要数据库提供工具插件。
  • 这是他们的小视频,介绍了他们的工具SQL Debugger in the new version of dbForge SQL Complete 中的调试功能
  • 它在 Visual Studio Marketplace 上可用。

【讨论】:

    【解决方案3】:

    @dens 在 Visual Studio 社区版中是正确的,但这是答案的一半,因为无法检查表变量值并且占位符为 (table);这是由于 Microsoft 没有完成调试器的这一部分。目前,您只能在 Locals Tab 中看到输出的原始数据类型。

    在删除、更新或插入表变量时查看表变量的解决方法是在每个查询中使用 output 关键字来输出插入或删除的元素。现在,当您单步执行时,您将在调试器记录器选项卡中看到名为“Locals”的原始变量,并在您单步执行时看到结果或 T-SQL 选项卡中的表变量。不幸的是,变量名不会在输出旁边,但是当您逐步完成时,很清楚哪个表输出属于哪个变量

    此外,如果您在 SQL 数据库而不是本地数据库上调试存储过程,我建议使用 SQL Server 的开发人员版本备份数据库的本地版本,因为将调试器附加到查询会被阻止防火墙。然后,您将需要系统管理员权限并打开端口,这些端口可能可以工作,但它在我的工作场所不起作用。我们甚至尝试删除整个防火墙,但祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 2020-05-25
      • 2020-06-30
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      相关资源
      最近更新 更多