2009-12-08 78 views
0

我有使用ADO连接调用SQL Server数据库存储过程的Visual Studio .Net项目。调试SQL Server 2008

可以在存储过程中设置断点并对其进行调试。我安装了本地SQL Server 和SQL企业版。

+0

你说的是调试实际存储过程本身吗?并且是存储过程托管代码或TSQL? – 2009-12-08 19:56:51

+0

2代理 我认为这是TSQL。它存储在数据库端 ALTER过程[aaa]。[my_Proc] 开始 ... – 2009-12-08 20:02:24

回答

1

据我所知,如果你是在谈论一个实际的T-SQL存储过程,你最好的选择将是:

  1. 弄清楚哪些参数要传递到存储过程时(如?)它会导致问题
  2. 从存储过程的正文中提取实际的SQL代码,并将其复制到新的查询分析器窗口中,
  3. 使用#1中的值运行该脚本。
+0

问题是当一个SP不应该被调用时。 我需要'赶上'是谁叫它 – 2009-12-08 20:03:46

+0

啊,是的,你可以在你的代码中放置一个断点并且这样做。你有一个想法* *代码中的*号可能来自哪里?如果没有,你可能需要做很多F10的工作,但最终你会发现它。这可能有助于保持SQL Server Profiler的正常运行。 – peacedog 2009-12-08 20:06:16

+0

当然,我知道这种方式。但我的问题是,如果在SQL服务器中有调试模式,我可以使用SSMS放置断点,并等待某个应用程序触发它 – 2009-12-09 12:29:03

1

我听说有几个选项用于调试存储过程,例如:直接数据库调试。

这里是一个很好的文章,我发现解释其中的一些链接:Stored Proc Debugging Methods

1

使用SQL Server Profiler(在SQL Server Management Studio中的“工具”菜单下)查看从ADO发送到数据库过程的确切调用。然后,您可以找出问题所在,并开始调试,无论是在SSMS还是Visual Studio中。

0

我强烈建议你看看SQL管理工作室内置的工具。

我写了一个非常详细的博客文章在这里:

http://www.diaryofaninja.com/blog/2010/11/23/debugging-sql-queries-function-amp-stored-procedures-with-sql-management-studio

基本上它的要点是,你输入你的SQL查询来执行存储过程,而不是按F5或打感叹号,你点击播放按钮,并使用F10和F11步进,并进入你的存储过程。

非常非常方便 - 没有人似乎使用它。