2009-11-24 98 views
35

有沒有什麼方法可以在SQL Server 2008上調試存儲過程?在SQL Server 2008中調試存儲過程

我有權使用SQL Server Management Studio 2008和Visual Studio 2008(不確定是否提供此功能)。

通常我使用SQL分析器來查找傳遞給存儲過程的參數,但是希望能夠逐步完成該過程以查看其失敗的位置。

這可能嗎?

什麼是最好的方法? (在快速查找錯誤的位置方面)

回答

33

那麼答案就是一直坐在我面前。

在SQL Server Management Studio 2008中,工具欄中有一個調試按鈕。在查詢窗口中設置一個斷點以逐步完成。

我一開始就沒有考慮到這個功能,因爲我沒有考慮到步入存儲過程,您可以輕鬆地執行此操作。

SSMS基本上做了FinnNK提到的與MSDN漫遊,但自動。

太容易了!感謝您的幫助FinnNK。

編輯︰ 我應該添加一個步驟在那裏找到存儲過程調用參數我在我的數據庫上使用SQL事件探查器。

+0

很棒的東西,在極少數情況下,我通常在應用程序的上下文中調試數據庫例程 - 沒有意識到您可以直接在SSMS中執行它。 – FinnNk 2009-11-25 08:44:07

+0

還有一個工具可用於在某處調試SQL Server 2008的調試 - 您可以開始記錄在錄製過程中正在調用的存儲過程。我忘了它叫什麼;現在可能非常方便。 – 2010-10-07 19:29:07

+2

拯救生命的人! ;) – 2011-11-23 07:16:57

16

是的,你可以(假設你至少有視覺工作室的專業版本),但是一旦你完成了這個工作,它需要一點設置,它與調試沒有多大區別碼。 MSDN has a basic walkthrough

+2

感謝FinnNk,然而這到永遠得走了,再加上我必須有一個項目只允許調試。不是我喜歡的。 – Russell 2009-11-24 23:41:41

4
  • 是,雖然它可以是棘手的調試工作,特別是如果試圖調試SQL從自己的開發計算機的遠程SQL服務器上。
  • 在第一種情況下,我建議通過在服務器上直接調試,如果可能的話,首先得到這個工作。
  • 使用具有sysadmin權限的帳戶登錄到SQL服務器,或要求您的DBA執行此操作。
  • 然後,爲自己的Windows帳戶,創建SQL Server中的 '登錄',如果它已不存在:

enter image description here

  • 右鍵單擊該帳戶>屬性 - 確保該登錄名是 '系統管理員' 角色的成員:

enter image description here

  • (還要確保帳戶是任何想要調試腳本的數據庫的「所有者」(例如,存儲特效)爲:

enter image description here

  • 然後,直接登錄到使用Windows帳戶SQL服務器。
  • 使用Windows身份驗證登錄到SQL服務器(使用您剛用來登錄到服務器的帳戶)
  • 現在'調試'SQL管理工作室中的查詢,根據需要設置斷點。您可以進入存儲的特效使用F11:

enter image description here

  • 這裏有一個有用的指導調試:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-1.aspx

  • 如果需要遠程調試,然後一旦你有這部分工作,你可以嘗試設置遠程調試:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-2.aspx

相關問題