[翻譯]在Visual Studio 2005中調試SQL Server 2005的存儲過程

作者: webabcd  來源: 博客園  發布時間: 2008-09-09 11:24  閱讀: 5698 次  推薦: 1   原文鏈接   [收藏]  
 

介紹
SQL Server 2000可以讓我們在查詢分析器中直接調試存儲過程(更多的信息請參看:用SQL Server 2000的查詢分析器調試存儲過程) 到了現在的SQL Server 2005,這個功能被轉移到了SQL Servr Management Studio和Visual Studio IDE內。 使用這個技術,我們可以在Visual Studio中一步一步地調試存儲過程。 而且你也可以在存儲過程中設置斷點,這樣當你調試你的程序時,這些斷點就會生效。

SQL Server 2005的所有版本都支持調試功能(包括Express版)。 但是,只有Team Systems和Professional版本的Visual Studio才能在IDE內調試存儲過程。 簡而言之,如果你使用的是Visual Web Developer或者Visual Studio Standard版本的話,就不能在調試應用程序的時候,一步一步地調試存儲過程或者進入到存儲過程內部。

本文中,我將示例如何通過Visual Studio IDE調試SQL Server 2005的存儲過程。 我們既會看到如何在IDE中直接一步一步地調試存儲過程,也會看到如何給存儲過程設置斷點,并在調試應用程序的時候進入到斷點處。 繼續往下看,你會知道得更多!

SQL Server調試的不同方法
現在的SQL Server 2005中,所有的數據庫調試都發生在Visual Studio IDE的內部。 數據庫中的像存儲過程、觸發器和用戶自定義函數(UDFs)這樣的對象都是可以被調試的(譯者注:本文中提到的數據庫對象指的是存儲過程、觸發器或用戶自定義函數)。 Visual Studio提供了3種調試這些數據庫對象的方法。 
    數據庫中直接調試 – 在Visual Studio的服務器資源管理器中,右鍵單擊某個數據庫對象,然后選擇“單步執行××”。 例如,當你右鍵單擊一個存儲過程的時候,彈出菜單中就會包含一個“單步執行存儲過程”的選項。 
    應用程序調試 – 在數據庫對象內設置斷點,然后通過應用程序進行調試。 當相關的ASP.NET程序處于調試狀態,并且調用了數據庫對象的時候,那么Visual Studio就會暫停在你所設置的斷點之處,從而允許我們一步一步地對T-SQL語句進行調試。 
    在SQL Server項目中調試 – 在Visual Studio中可以創建一個SQL Server項目。 該項目中可以包含T-SQL和數據庫對象,并且這些數據庫對象都可以通過SQL Server項目本身來調試。

關于這3種不同的SQL Server調試的更多信息,請參看:Overview of T-SQL and CLR Debugging in SQL Server 2005

還有一個需要注意的地方就是,本文接下來所介紹的SQL Server調試是基于本地數據庫的。 當然,無論是本地數據庫還是遠程數據庫都是可以調試的。 本地數據庫指的是數據庫部署在本機上;遠程數據庫指的是數據庫部署在本機之外的機器上。 調試本地數據庫不需要做額外的設置, 但是調試遠程數據庫卻要復雜得多。

本文主要介紹的是如何在數據庫中直接調試,以及如何在ASP.NET程序中調試一個本地數據庫。 詳細點說就是,我們將調試App_Data文件夾下的SQL Server 2005 Express版本的數據庫,你可以在本文的結尾處下載該數據庫及示例程序。 在今后的其它文章中我們再研究如何在SQL Server項目中調試數據庫。 接下來,我給大家簡要講一講關于調試遠程數據庫的相關要點。

調試遠程數據庫
調試遠程數據庫最關鍵的要點在于,要確保啟動Visual Studio的Windows用戶與連接遠程數據庫的用戶是同一個用戶。 此外,該用戶必須隸屬于sysadmin角色。

例如,你可以在Windows的域中創建一個名為“TestDebug”的用戶。 然后使其可以登錄到遠程SQL Server數據庫,并將該用戶添加到sysadmin角色內。 另外,你還需要使用“TestDebug”用戶來登錄你的電腦,或者確保使用runas.exe命令啟動的Visual Studio運行在“TestDebug”用戶下。 這樣,你就可以使用我們接下來演示的方法來調試了。

更多的詳細信息可以參看這本書:Hitchhiker's Guide to Visual Studio and SQL Server, Seventh Edition

在數據庫中直接調試
在數據庫中直接調試是調試SQL Server 2005的存儲過程的最簡單的方法。 在Visual Stuido的IDE中你可以選擇單步執行存儲過程,然后就可以一條語句一條語句地單步執行了,同時你也可以檢查和修改存儲過程內的T-SQL變量和參數。 本文結尾處提供下載的壓縮包中包括一個SQL Server 2005 Express版本的Northwind數據庫。 我在其中添加了一個名為“DoThings”的存儲過程,它有一個參數@CategoryID。 這是一個沒什么實用價值的存儲過程,但是它有很多的T-SQL語句和變量,另外還有一個參數,這將使我們能更好地練習存儲過程的調試。

1
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()