其實SSMS的偵錯工具很簡單,如果你使用過Visual Studio開發工具,那差不多是一個樣子,設「中斷點」然後執行「偵錯」,我們先寫一段簡單的T-SQL程式:
declare @v1 int=1 -- 初始化 declare @v2 int select @v2=MAX(ProductID) -- 應該是77 from Northwind.dbo.Products while (@v1 <= @v2) begin select * from Northwind.dbo.Products where ProductID = @v1 set @v1 += 2 -- 在這裡設中斷點, 我們想取得單數行(1,3,5,7,9...) end;
設好中斷點,我們就按下「偵錯」,
就會開始偵錯程序,此時T-SQL並不會執行,而是會等待你給它「動作」指令,它才會一行一行或一步一步的執行,
透過「偵錯工具」可以控制T-SQL的執行流程,黃色箭頭代表「下一行要執行的T-SQL陳述式」,所以一開始是停在第一行(一開始並未執行,未執行的下一行就是第一行);再看畫面下方,
「區域變數」最重要,可以看到我們變數的變化,這對我們偵錯很重要。
「呼叫堆疊」會顯示目前的執行位置、中斷點的管理,輸出是顯示各種訊息。接下來的操作大多是在「偵錯工具」及查看「區域變數」的變化。
黃色箭頭之下各代表「逐行執行」、「不進入函式」、「跳離函式」,如果你非常確定函式不會出錯,那就可以使用「不進入函式」、「跳離函式」來加速偵錯程序,我們按幾次「逐行執行」後來看結果:
我剛執行完「set @v1 += 2」這一行,所以下一行要執行的T-SQL陳述式是「While (@v1 <= @v2)」,
看看「結果」是否有跑出我們預期的結果,1、3、5、7…是我們要的,
查看「區域變數」的變化,是否符合我們預期;完成偵錯後,就按下「停止偵錯」即可。
在MS SQL Server 2008中透過SSMS工具,我們能夠很方便的進行偵錯,這是一件很棒的事。不用看著網頁上一大堆的錯誤訊息,然後再回程式碼修改T-SQL,再重新執行網頁,再看著錯誤訊息,再回程式碼修改T-SQL…無窮迴圈。
就算你是把T-SQL寫在網頁程式碼裡,也應該在SSMS先測試無誤後,再放入到網頁程式碼中,這樣才能確保T-SQL是正確無誤,以減少不必要的錯誤。
T-SQL就應該交給專家,而SSMS就是MS SQL Server的T-SQL專家。
Reference:
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。