2009-12-08 118 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步進,並進入你的存儲過程。

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