如何使用 SQL Server Management Studio 2017 调试 T-SQL?

How to debug T-SQL with SQL Server Management Studio 2017?

最新的变更日志 (18.0 Preview 7) of SQL Server Management Studio announced, that the T-SQL Debugger 已弃用。

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

您只需要下载 Visual Studio 2019 社区。

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

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

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

但调试器不适用于 Azure SQL

  • 看来微软可能暂时把调试的分支挪了 从 SSMS18SQLServer 数据工具 (SSDT).
  • 据 DBA Stackexchange 社区的开发人员称,有 另一种调试方法,因为 Debugger 在 SSMS18.
  • 这是显示如何实现调试的 link:如何添加调试 按钮到 SSMS v18?

备选方案:??

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

@dens 转到 visual studio 社区版是正确的,但是这是答案的一半,因为无法检查 table 变量值并将占位符设置为 (table);这是因为 Microsoft 没有完成调试器的这一部分。目前,您只能在 Locals 选项卡中看到输出的原始数据类型。

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

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