如何从C#代码进入SQL Server存储过程?

我正在调试一些使用Ado.net在SQL Server中调用存储过程(TSQL)的C#代码。 我怎样才能进入存储过程?

(我想我已经看到这个由微软工作人员演示,但是不能回想起让它工作所需的101个“神奇”设置。)

我将以Davide的回答和Ian对它的评论为基础,因为这正是我经历的过程。

假设 :答案基于VS2008和VS2010

要在调试.NET应用程序时在SQL Server上单步执行T-SQL存储过程,您需要执行以下操作:

  1. 按照MS支持说明“ 如何在Visual Studio .NET中调试存储过程 (选项2)

    • 确保已在项目的属性中启用了SQL Server调试 (链接指令中的步骤4)。
    • 确保在存储过程本身中设置了断点 (步骤6-7)
  2. 在调用存储过程的数据连接上启用“ 允许SQL / CLR调试 ”:

    • (没有第二步,你将得到“断点当前不会被命中。此时无法绑定SQL breakponit。包含未加载断点的对象。”由Ian报告)
    • Server Explorer >数据连接
    • 右键单击您在代码中使用的连接
    • 勾选菜单中的“ 允许SQL / CLR调试”选项

从评论中添加:(这似乎是让它工作的关键)

它也适用于以编程方式创建的连接。 您只需使用右键单击服务器实例时显示的完全相同的连接字符串 ,单击“属性”并向下滚动到“连接字符串”(德语中的Verbindungszeichenfolge)。

对于那些使用VS 2012并且对于为什么无法从“服务器资源管理器”窗口启用SQL / CLR调试感到困惑的人,实际上需要通过“SQL Server对象资源管理器”窗口进行连接。

在该窗口中建立连接后,将在数据库的右键单击上下文菜单中显示“ Allow SQL/CLR DebuggingApplication Debugging设置。 这可能也适用于2013年,但我无法确认。

在项目属性中启用SQL Server调试。

在解决方案资源管理器中,右键单击项目(而不是解决方案)并打开“属性”页面。 单击树中的“配置属性”,然后单击以选中“调试”页面上的“SQL Server调试”复选框以启用存储过程调试。

参考: http : //support.microsoft.com/kb/316549