SQLSERVER2005調試存儲過程跟函數


SQLSERVER2005調試存儲過程跟函數

以前一直用Toad for SqlServerDatabase.Net 來調試SQL2005的存儲過程跟函數

Toad for SqlServer介紹以及下載:toad for sqlserver5.7

Database.Net 介紹以及下載:Database .NET 8.0 發布,數據庫管理工具

今日發現原來上面兩個工具的功能,微軟的Visual Studio也可以做到

本來微軟自家的Visual Studio就支持調試SQLSERVER的存儲過程跟函數,我竟然用了第三方工具,而且這些第三方工具也不是很好用

微軟在SQLSERVER Management Studio2008里才集成了TSQL調試功能,那么SQL2005只有用VS來調試了


幸虧VS調試TSQL也不是很復雜

我的環境:VS2008 TeamSystem SQL2005 個人開發版 ,   Windows7 Ultimate

我使用的工具還是比較落后

step1:打開Visual Studio2008,然后點擊菜單 視圖-》服務器資源管理器

最好以管理員身份登錄操作系統,打開VS的時候一般就以管理員的身份運行了

step2:在數據連接那里 右鍵-》添加連接

step3:數據源那里選擇SQLSERVER就可以了

step4:選擇你本地的數據庫不要選擇局域網或者廣域網里的數據庫,因為Windows安全問題的原因你是調試不了的只能執行

joe是我的筆記本電腦的計算機名,joe-homepc是局域網里另一台計算機的計算機名

 

選擇好了之后點擊“測試連接” ,沒有問題就可以點擊“確定”按鈕了

 

step5:打開存儲過程或者函數的樹節點,然后找一個存儲過程或者函數進行調試

step6:調試函數,調試的時候無論是存儲過程還是函數,都會直接跳過變量定義部分進入函數或存儲過程主體來執行

只有當TSQL語句運行的時候才會中斷到斷點的地方

 

step7:調試存儲過程

 

 當你調試遠程SQL服務器的時候,VS就會報錯,就像你寫C#的時候是調試不了遠程電腦上的代碼的

 

 

不過個人覺得調試如果能看到表數據就最好了,調試的時候varchar nvarchar int  datetime這些數據都可以看到

但是表的內容,無論是臨時表,表變量,表都是無法看到數據的,如果你想查看中途我插入到@temp表變量里的數據是看不到的

包括Toad for SqlServer 這些工具也是沒辦法看到的,個人覺得這是一個缺點


最后給大家一個函數,這個函數的作用就是切割字符串,大家可以用來調試一下

 1 CREATE     FUNCTION [dbo].[SplitString] (@string varchar(6000))
 2 RETURNS @temp TABLE(substr varchar(30))
 3 AS
 4 begin
 5    -- 用法 select * from SplitString('1, 2, 3')
 6 
 7    declare @str varchar(6000)
 8    declare @i int
 9 
10    set @i=0
11    while(@i<len(@string))
12    begin    
13        if(substring(@string,@i,1)=',')
14         begin
15             select @str=substring(@string,1,@i-1)
16             set @string=substring(@string,@i+1,len(@string))
17                   set @i=1
18             insert into @temp values(ltrim(@str))
19     
20            end
21        else
22            begin 
23             set @i=@i+1
24            end
25    end
26 
27    insert into @temp values(ltrim(@string))
28 
29    RETURN
30 end

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM