SQL Server 2008下輕松調(diào)試T-SQL語句
本文主要介紹 SQL Server Express 2008不用第三方工具調(diào)試T-SQL語句,經(jīng)過本文的介紹,用SQL Server 2008 Manage studio 編寫、調(diào)試T-SQL存儲過程都將是一件輕松、快樂的事情。
一、回顧早期的SQL SERVER版本:
早在SQL Server 2000時代,查詢分析器的功能還很簡陋,遠不如VS那么強大。到SQL Server 2005時代,代碼高亮、SQL優(yōu)化等功能逐漸加強,但是依然無法調(diào)試SQL語句。好一點的第三方的SQL語法編輯器似乎也不夠***,這樣導(dǎo)致一些人抱怨存儲過程不便于維護,開發(fā)的時候能不用則不用。
二、SQL Server 2008 Express 智能提示加強:
該功能是SQL2008在SQL Server 2005之后的升級版,我們可以很方便的調(diào)用智能提示,和 VS一致:使用快捷鍵ctrl + J 即可。
截圖如下:
該功能是否與VS一樣了呢? 畢竟他們都是微軟的產(chǎn)品。
三、調(diào)試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鍵,即可調(diào)試以上代碼塊。
截圖如下:
接著點擊F11逐語句debug 或者F10逐過程調(diào)試代碼。
截圖如下:
這個dubug的場面您是否覺得已經(jīng)和VS相差無幾了呢?
四、支持復(fù)雜存儲過程嵌套debug:
您可能會疑問,在一個龐大的系統(tǒng)中,如果數(shù)據(jù)庫邏輯絕大部分都是存儲過程實現(xiàn)的情況下,會出現(xiàn)存儲過程嵌套存儲過程或者嵌套存儲函數(shù)這樣的代碼。
SQL2008是否支持調(diào)試功能呢?答案是肯定的。
首先定義一個簡單的存儲過程(本文使用NorthWind數(shù)據(jù)庫)代碼如下:
- 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
該存儲過程在以下批處理內(nèi)被調(diào)用,代碼如下:
- 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。
截圖如下:
當斷點經(jīng)過exec sp_getOrders 10248 這段代碼時,點擊F11進入sp_getOrders存儲過程進行逐語句debug。
截圖如下:
這樣可以在嵌套的存儲過程或函數(shù)內(nèi)進行debug了,此刻不得不承認: 升級后的SQL2008越來越強大。您還恐懼使用或者調(diào)試存儲過程么?
五、小結(jié):
附上SQL Server Express 2008官方下載地址,該版本還有另外一個好處是自帶了Agent,這樣就可以直接使用Agent進行自動備份數(shù)據(jù)庫。比在SQLExpress2005中自動備份數(shù)據(jù)庫更方便,關(guān)于SQL Server 2005的自動備份請閱我的這篇文章。
原文鏈接:http://www.cnblogs.com/ryanding/archive/2010/12/06/1896762.html
【編輯推薦】