【发布时间】: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。您在这里尝试RETURNdecimal(12,4),这将被隐式转换为int。当您可以调用标量函数时,为什么还需要 proc 呢?不需要 proc 来执行此操作。
标签: sql-server debugging stored-procedures visual-studio-2019