调试MS SQL存储过程

5

我在使用Visual Studio 2008进行存储过程调试时遇到了问题:当我开始调试时,输出窗口中会显示成功消息,但实际的存储过程窗口没有弹出。

Auto-attach to process '[1640] [SQL] stagsql' on machine 'stagsql' succeeded.
The thread 'stagsql [67]' (0xf80) has exited with code 0 (0x0).
The thread 'stagsql [67]' (0xf80) has exited with code 0 (0x0).
The thread 'stagsql [69]' (0x908) has exited with code 0 (0x0).
The thread 'stagsql [69]' (0x908) has exited with code 0 (0x0).
The thread 'stagsql [69]' (0x908) has exited with code 0 (0x0).
The thread 'stagsql [69]' (0x908) has exited with code 0 (0x0).
Running [dbo].[uspCGetXYZ] ( @nLieferantId = 161616, @nStrukturId = -1, @nPageIndex = 1, @nPageSize = 16, @sSortColumn = arLangname, @nSortAscending = 1 ).

Visual Studio进入“调试模式”,但过程根本没有显示出来。
我所做的步骤:
1. 在项目设置中启用SQL调试 2. 在服务器资源管理器中打开SQL连接 3. 启用连接上的CLR/SQL调试 4. 右键单击该过程并选择“逐步执行存储过程”
或者,我尝试打开过程并在那里设置断点,但没有帮助。
有什么想法吗?如上所述,连接是存在的,但Visual Studio无法打开过程代码。

只是确认一下,这是一个CLR存储过程吗? - cjk
这个问题对你来说解决了吗? - Wayne
不幸的是,现在我正在使用Management Studio作为调试器,而不是Visual Studio :/ - driAn
尝试一个新的解决方案来测试数据库调试。 - Wayne
还可以告诉我们它是哪种解决方案类型,以便我们尝试复制吗? - Wayne
5个回答

1
您是否选择了“显示实际执行计划”?我发现如果选中该按钮,则调试功能将无法运行,尽管我想不出为什么会这样。
我还没有在Connect上提交错误报告,但如果有人知道此问题,我很乐意点赞。

是的,你说得对。它确实不行。我会将其记录为错误并传递URL。 - Ash

0

你能看到那个存储过程后面的代码吗?如果它被保存为“WITH ENCRYPTION”,你可能无法看到代码,然后你将需要存储过程的原始源代码来调试它。


0

0

这个问题的解决方案是数据库解决方案吗?您是否去了 新建->解决方案->其他->数据库?

一旦您创建了一个数据库解决方案并设置了连接首选项,您就应该能够使用服务器资源管理器来编辑和逐步执行存储过程。请验证这是否仍然会导致问题?

您正在使用 Express 版本吗?


不,我使用包含各种项目的“普通”解决方案。我能在不删除当前解决方案的情况下修复它吗? 我使用专业版本。 - driAn
好的,请尝试添加新的解决方案文件->添加->新项目,然后选择其他项目类型->数据库。这应该会在您当前的解决方案中提供DB项目。希望这可以帮助到您。 - Wayne

-1

我认为您无法像在普通的VS应用程序中那样设置断点。

但是,您可以创建一个临时表进行日志记录,并在每行上添加一个新条目到该临时表中。


1
你可以像调试 Visual Studio 应用程序一样进行调试。变量和(几乎)所有其他内容。 - Raj More

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接