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

Ian*_*ose 29 .net c# sql-server debugging visual-studio

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

(我想我已经看过微软工作人员演示的这个,但是不记得让它工作所需的101个"神奇"设置.)

Dmi*_*kiy 16

我将以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 >数据连接
    • 右键单击您在代码中使用的连接
    • 勾选菜单中的Allow SQL/CLR Debugging选项

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

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

  • @Ian我担心您必须使用服务器资源管理器中列出的连接.在VS本身中没有任何相关文档也没有说明可以为编程创建的连接执行此操作.因此,至少出于调试/测试目的,您需要列出的连接. (2认同)

Nat*_*els 8

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

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