如何在 VS 2013 中调试 CLR 存储过程

How to debug a CLR Stored procedure in VS 2013

我尝试了不同的方法来完成这项工作,但没有任何效果。当我 运行 测试脚本时,VS 似乎忽略了我在 .cs 文件中的所有断点。我也在测试脚本中包含了一个断点,但仍然无法调试。

这是我试过的来自 Microsoft https://msdn.microsoft.com/en-us/library/ms165051(v=vs.100).aspx 的指南,但是当我右键单击我的脚本文件时没有 "a Set as Default Debug Script" 选项。

您可能还需要:

  1. 运行 Visual Studio 作为管理员
  2. 打开默认情况下被Windows 防火墙
  3. 阻止的其他端口
  4. 将项目设置为启动项目。
  5. 在 Visual Studio 中:转到 "SQL Server Object Explorer",在 "Project Properties" 的 "Debug" 选项卡中右键单击要部署到的实例,然后 select "Allow SQL/CLR Debugging",在弹出的对话框中点击"Yes"按钮。
  6. 如果您希望断点起作用,则不能在 "Project Properties" 的 "SQLCLR Build" 选项卡中选中 "Optimize Code" 选项。默认情况下,未选中 "Debug" 配置并选中 "Release" 配置。配置本身并不重要,只要 选中该选项即可。如果是,您需要取消选中它并重新发布并确保它确实更新了程序集(有时可能不会,因为程序集没有其他更改)。
  7. 在 Visual Studio 中:从 "SQL Server Object Explorer" 打开一个新查询,并在附加到执行“>”按钮的下拉列表中,select "Execute With Debugger"(这是还有 ALT + F5)。有时断点并没有在第一次被捕获,所以只需再次使用调试器执行。
  8. 请注意:您连接到 SQL 服务器的登录名需要是 sysadmin

可能还有一些额外的东西,但我很确定你不需要默认的调试脚本,即使一些关于这个的帖子说你需要。

请在此处查看我的回答以及问题评论中的链接:

Can't attach to SQL Server to debug SQLCLR Stored Procedure

如果您在同一台机器上有 Visual Studio 和 SQL 服务器,只需将 sqlservr.exe 附加到 Visual Studio 调试器,然后执行存储过程。应该打SP法吧