SQL Server 2008下輕鬆調試T-SQL語句

本文主要介紹 SQL Server Express 2008不用第三方工具調試T-SQL語句,

經過本文的介紹,用SQL Server 2008 Manage studio 編寫、調試T-SQL存儲過程都將是一件輕鬆、快樂的事情。

一、回顧早期的SQL SERVER版本:

早在SQL Server 2000時代,查詢分析器的功能還很簡陋,遠不如VS那麼強大。

到SQL Server 2005時代,代碼高亮、SQL優化等功能逐漸加強,但是依然無法調試SQL語句。

好一點的第三方的SQL語法編輯器似乎也不夠完美,這樣導致一些人抱怨存儲過程不便於維護,開發的時候能不用則不用。


二、SQL Server 2008 Express 智能提示加強:

該功能是SQL2008在SQL Server 2005之後的升級版,我們可以很方便的調用智能提示,和 VS一致:使用快捷鍵ctrl + J 即可。

截圖如下:

 

該功能是否與VS一樣了呢? 畢竟他們都是微軟的產品。

三、調試T-SQL語句:

1.Debug普通T-SQL語句:

SQL代碼如下:

    use northwind  
    go  
    declare @i int ,@j int,@k int 
     set @i = 1;  
     set @j = 2;  
     set @k=@i + @j  
     select @i;  
     go 


非常簡單的定義了 三個int 型變量:i、j、k並且對這些變量進行簡單的邏輯運算,在Management Studio 中只要輕鬆的按F11鍵,即可調試以上代碼塊。

截圖如下:

接着點擊F11逐語句debug 或者F10逐過程調試代碼。

截圖如下:

這個dubug的場面您是否覺得已經和VS相差無幾了呢?

四、支持複雜存儲過程嵌套debug:

您可能會疑問,在一個龐大的系統中,如果數據庫邏輯絕大部分都是存儲過程實現的情況下,會出現存儲過程嵌套存儲過程或者嵌套存儲函數這樣的代碼。

SQL2008是否支持調試功能呢?答案是肯定的。

首先定義一個簡單的存儲過程(本文使用NorthWind數據庫)代碼如下:

    CREATE procedure sp_getOrders   
     @orderID int = null   
     as   
    if (@orderID is null )   
     begin  
     print 'null'   
     end   
    else   
    begin 
    print 'correct' 
     end 
     select * from Orders whereOrderID = @orderID  
    go 


該存儲過程在以下批處理內被調用,代碼如下:

    declare @i int ,@j int,@k int   
    set @i = 1;  
    set @j = 2;  
    select @k=@i + @j  
    exec sp_getOrders 10248  
     select @i;  
    go 


F11對以上代碼進行SQL Debug。

截圖如下:

當斷點經過exec sp_getOrders 10248 這段代碼時,點擊F11進入sp_getOrders存儲過程進行逐語句debug。

截圖如下:

這樣可以在嵌套的存儲過程或函數內進行debug了,此刻不得不承認: 升級後的SQL2008越來越強大。您還恐懼使用或者調試存儲過程麼?


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章