婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 如何在SQL Server 2008下輕松調試T-SQL語句和存儲過程

如何在SQL Server 2008下輕松調試T-SQL語句和存儲過程

熱門標簽:濟南電銷外呼防封卡怎么樣 南京外呼系統租用 電銷外呼系統違規 寧夏外呼系統方案 高德地圖標注生成 怎樣在地圖標注自己的信息 400電話辦理2273649Z空間 智能語音外呼系統打電話 400電話怎么申請收費標準

今天突然有同事問起,如何在sqlserver中調試存儲過程(我們公司使用的是sqlserver 2008 R2),猛地一看,和以前使用sqlserver 2000真的有很大的不同,我真暈了。

于是琢磨了一下。SQLSERVER 2005中不知因何去掉了很重要的DEBUGGER功能,要調試,必須要安裝VS2005專業版或者更高版本。非常不方便。

還好,SQLSERVER 2008中這個很重要而且方便的功能又回來了。

不過,SQLSERVER 2008的調試功能和SQL2000的方法差別很大。SQL2000是在查詢分析器中的對象瀏覽器中選中需要調試的存儲過程,右鍵----調試---輸入參數開始調試。

sqlserver2008中則完全不同,變成了必須要在SSMS中EXEC [PROCEDURE NAME] @VAR1,@VAR2,然后點綠色三角或者點菜單中的調試---啟動調試。然后點工具欄的最右邊的單步調試或者跳出等。下面的變量窗口和堆棧窗口等可以查看調試中變量等動態變化值。

sqlserver2008調試的要求和條件:如果在引擎所在的電腦或服務器上調試,則只需要SA或者WINDOWS用戶登陸即可。如果是異地調試,則需要設置防火墻例外,增加SSMS和SQLSERVER.EXE為允許,增加135端口允許通過。

總之,SQL2008的調試比2000操作起來麻煩多了,要求也多了。剛開始感覺不如2000的好用,也可能是使用2000習慣了。習慣是可怕的,但是微軟是在不斷進步的...


一、回顧早期的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越來越強大。您還恐懼使用或者調試存儲過程么?

您可能感興趣的文章:
  • SQL Server 2008 存儲過程示例
  • sqlserver2008查看表記錄或者修改存儲過程出現目錄名無效錯誤解決方法
  • SQLServer 2008中的代碼安全(一) 存儲過程加密與安全上下文
  • SQLServer2008存儲過程實現數據插入與更新
  • sql server2008調試存儲過程的完整步驟

標簽:長白山 茂名 仙桃 平頂山 惠州 潛江 貴港 唐山

巨人網絡通訊聲明:本文標題《如何在SQL Server 2008下輕松調試T-SQL語句和存儲過程》,本文關鍵詞  如,何在,SQL,Server,2008下,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《如何在SQL Server 2008下輕松調試T-SQL語句和存儲過程》相關的同類信息!
  • 本頁收集關于如何在SQL Server 2008下輕松調試T-SQL語句和存儲過程的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 澄城县| 舟山市| 琼海市| 全州县| 班玛县| 阿拉尔市| 三台县| 扶余县| 分宜县| 固安县| 同仁县| 伊宁县| 平顶山市| 章丘市| 余江县| 岳西县| 南投市| 开封县| 马关县| 申扎县| 天长市| 榆树市| 龙井市| 木里| 永州市| 新民市| 焉耆| 石台县| 沭阳县| 澄城县| 彭泽县| 宁蒗| 交城县| 宁乡县| 班戈县| 延寿县| 泌阳县| 营口市| 额济纳旗| 邹平县| 景宁|