以前一直用toad for sqlserver和database.net來除錯sql2005的儲存過程跟函式
今日發現原來上面兩個工具的功能,微軟的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這些工具也是沒辦法看到的,個人覺得這是乙個缺點
最後給大家乙個函式,這個函式的作用就是切割字串,大家可以用來除錯一下
1create
function
[dbo
].[splitstring
] (@string
varchar(6000))2
returns
@temp
table(substr varchar(30))3
as4begin5--
用法 select * from splitstring('1, 2, 3')67
declare
@str
varchar(6000)8
declare
@iint910
set@i=0
11while(@i
<
len(@string
))12
begin
13if(substring(@string,@i,1)=',
')14begin
15select
@str
=substring(@string,1,@i-1
)16set@string
=substring(@string,@i
+1,len(@string
))17
set@i=1
18insert
into
@temp
values(ltrim(@str
))19
20end
21else
22begin
23set@i=
@i+124
end25
end26
27insert
into
@temp
values(ltrim(@string
))28
29return
30end
SQL Server2005複製實現
一 準備工作 1 在發布伺服器上建立乙個共享目錄,作為發布快照檔案的存放目錄。例如 在d 盤根目錄下建資料夾名為pub 2 設定sql 發布伺服器和訂閱伺服器均設定 步驟 開啟服務 控制面板 管理工具 服務 右擊sqlserver agent 屬性 登入 選擇 此帳戶 輸入或選擇第一步中建立的win...
SQL Server 2005完全解除安裝
sql server 2005的解除安裝是乙個非常頭疼的問題。我曾經嘗試過直接使用 新增或刪除程式 工具解除安裝 清除安裝目錄 刪除登錄檔內容等等各種方式綜合解除安裝,勉強成功。現在終於找到了乙個事半功倍的方法,多次嘗試,未有失敗,具體如下 第一種是微軟官方提供的工具 msicuu2.exe 微軟官...
SQLSERVER 2005 遞迴查詢
專案中有使用者組表usergroup如下 其中pid表示當前組的上級組 表資料如下 現在想查詢出頂級組 沒有上級組叫頂級組 a1組的所有子孫組id,sql如下 查詢子節點 with rtd1 as select id pid from usergroup rtd2 as select from rt...