【问题标题】:Need detailed instructions for debugging SQL Server stored procedure in Visual Studio 2019需要在 Visual Studio 2019 中调试 SQL Server 存储过程的详细说明
【发布时间】:2021-03-21 09:44:35
【问题描述】:

我是在 SSMS v18 中删除的调试器的受害者。您现在应该在 Visual Studio 2019 中执行此操作,但我失败了。我已经阅读了很多关于这个主题的网页。例如:

Why aren't my breakpoints hitting SQL In Visual Studio 2019 debugging script from network server

How to: Debug a SQL Server CLR Integration stored procedure

How to debug SQL from Visual Studio 2019

我尝试的是:这是程序:

CREATE PROCEDURE [dbo].[sp_DevTest]
AS
    DECLARE @dHrs decimal(12,4)

    SELECT @dHrs = dbo.TNPF_OperHours(592,'2020/10/31 23:59 -07:00')

    RETURN @dHrs

它的目的是测试函数dbo.TNPF_OperHours

我在 SELECT 语句上设置了一个断点。从 SQL 主菜单项中,我单击“使用调试器执行”。整个过程以黄色突出显示;断点消失。我无法设置断点。我按 F11。黄色突出显示的过程消失了,我回到了突出显示断点的编辑窗口。

我想也许我需要在解决方案中添加一个 SQL 项目。创建一个后,我找不到从那里调试的方法。

我的开发环境是一台装有此 SQL Server 的 Win 10 计算机:

我使用 Visual Studio 2019 社区版。我为小型非营利组织开发网站。我退休了,我捐出我的时间。我被困住了,非常感谢您的帮助。

【问题讨论】:

  • 旁注:您应该为您的存储过程使用sp_ 前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免 sp_ 并使用其他东西作为前缀 - 或者根本不使用前缀!
  • 上述内容也永远不会像您期望的那样工作。 RETURN 表示过程的成功状态,它返回一个int。您在这里尝试RETURN decimal(12,4),这将被隐式转换为int。当您可以调用标量函数时,为什么还需要 proc 呢?不需要 proc 来执行此操作。

标签: sql-server debugging stored-procedures visual-studio-2019


【解决方案1】:

只需安装支持内联调试的最新 SSMS v.17.9.1。 它可以与 SSMS 18.* 在同一台机器上共存。

SSMS 17.9.1 download

【讨论】:

  • Yitzhak - 是的,谢谢,已经试过了。 SSMS 17.9.1 出现故障,我放弃了。也许我应该卸载并重新安装。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多