ตอนที่ 13 : การ Debug Stored Procedure บน Visual Studio 2010,2012,2013,2015 และอื่น ๆ |
ตอนที่ 13 : การ Debug Stored Procedure บน Visual Studio 2010,2012,2013,2015 และอื่น ๆ สำหรับฟีเจอร์นี้ถือว่าเป็นจุดเล่นและความสามารถน่าสนใจมาก เพราะเหตุลผก็คือใน SQL Server รุ่นใหม่ ๆ มันสามารถใช้ Visual Studio ทำการ Debug ตัว Stored Procedure ร่วมกับการเขียนโปรแกรมอื่น ๆ บน Visual Studio ได้เลย ซึ่งปัญหาในการเขียน Stored ยุคแรก ๆ ก็คือแทบจะไม่มีวิธีการ Debug ตัว Stored Procedure ได้เลย การหาข้อผิดพลาดระหว่าง Runtime นั้นเป็นไปได้ยากมา นอกจากการใช้วิธี PRINT เพื่อดูค่าทาง Result ด้วยเหตุนี้เอง Stored Procedure จึงไม่ค่อยได้รับความนิยมมากนัก และถือว่าเป็นจุดเด่นมาก ๆ ที่ใน Visual Studio รุ่นใหม่ ๆ มีฟีเจอร์นี้ขึ้นมาด้วย โดยเราสามารถที่จะ Debug ได้เฉพาะ Stored Procedure ก็ได้ หรือจะ Debug โปรแกรมตั้งแต่ Application จนมาถึงการเรียกใช้งาน Stored Procedure
Stored สำหรับทดสอบในการ Debug โปรแกรม
CREATE PROCEDURE [dbo].[myStoredProcedure]
@pRow INT
AS
BEGIN
-- Declare Table
DECLARE @temp TABLE
(
RowID INT,
Name VARCHAR(50),
LastName VARCHAR(50)
)
-- Variable
DECLARE @i INT
SET @i = 1
-- Loop Insert Table
WHILE (@i <= @pRow)
BEGIN
INSERT INTO @temp (RowID,Name,LastName) VALUES ((@i),'Weerachai','Nukitram')
SET @i = @i + 1
END -- WHILE
-- Variable
DECLARE @j INT
DECLARE @iRow INT
DECLARE @sName VARCHAR(50)
DECLARE @sLastName VARCHAR(50)
-- Set Variable
SET @j = 1
SELECT @iRow = COUNT(*) FROM @temp
-- Loop Display Row
WHILE (@j <= @iRow)
BEGIN
-- Select from table
SELECT @sName = Name , @sLastName = LastName
FROM @temp WHERE RowID = @i
-- Print output
PRINT ' Row : ' + CONVERT(VARCHAR,@j) + ', Name : ' + @sName + ', LastName : ' + @sLastName
SET @j = @j + 1
END -- WHILE
END
Note!! Visual Studio 2010 สามารถ Debug ได้แค่ SQL Server 2008 ลงไป ส่วน รุ่นอื่น ๆ จะต้องใช้ให้สูงกว่า Version ที่โปรแกรม Limit ไว้
Example 1 การ Debug Stored Procedure บน Visual Studio 2010
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-01.jpg?v=1001)
เลือกที่ Server Explorer คลิกขวา Add Connection
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-02.jpg?v=1001)
ข้อมูลที่จะติดต่อกับ SQL Server
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-03.jpg?v=1001)
รายการ SQL Server แสดงใน Server Explorer ของ Visual Studio
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-04.jpg?v=1001)
เลือกชื่อ Stored Procedure ที่ต้องการ
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-05.jpg?v=1001)
คลิกขวาเลือกที่ Open
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-06.jpg?v=1001)
หลังจากที่แสดง Stored Procedure เราสามารถกำหนด Breakpoints ที่จะ Debugได้
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-07.jpg?v=1001)
คลิกขวที่ Stored Procedure -> Step Info Stored Procedure
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-08.jpg?v=1001)
ในกรณีที่ Stored มี Parameters จะแสดง Dialog ให้ทำการ Input ค่าต่าง ๆ
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-09.jpg?v=1001)
จากนั้นตัว Cursor จะวิ่งมายัง Breakpoints และหยุดให้เราตรวจสอบค่าต่าง ๆ ซึ่งสามารถ Debug Step ได้เหมือนกับ Visual Studio เช่น F10 , F11 , F5 เป็นต้น
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-10.jpg?v=1001)
การ Control Step ต่าง ๆ
Example 2 การ Debug Stored Procedure บน Visual Studio 2012,2013 และอื่น ๆ
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-11.jpg?v=1001)
ในการ Debug ตัว Stored Procedure ตั้งแต่ Visual Studio 2012 ขึ้นไป
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-12.jpg?v=1001)
ให้คลิกที่เมนู VIEW -> SQL Server Object Explorer
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-13.jpg?v=1001)
ในกรณีที่แสดงข้อความ
Untable to connect a database and browse object.
Incompatible version of sql server data tools and database runtime components are installed on this computer. Wen I click on Lear more... and Get the latest version of SQL Server Data Tools..., these two page are not available.
แสดงทำการดาวน์โหลดและติดตั้งตัว SQL Server Data Tools. ให้เรียบร้อยเสียก่อน
Microsoft SQL Server Data Tools
ล่าสุด
https://msdn.microsoft.com/en-us/library/mt204009.aspx
สำรอง
http://www.microsoft.com/en-us/download/details.aspx?id=36843
http://www.microsoft.com/en-us/download/details.aspx?id=42313
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-14.jpg?v=1001)
เลือก Version ให้ตรงกับ Visual Studio ที่กำลังใช้งาน
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-15.jpg?v=1001)
ติดตั้ง Microsoft SQL Server Data Tools
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-16.jpg?v=1001)
แสดงรายการของ SQL Server
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-17.jpg?v=1001)
คลิกขวาที่ SQL Server -> Add SQL Server
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-18.jpg?v=1001)
ทำการ Authen ตัว SQL Server ที่จะเชื่อมต่อ
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-19.jpg?v=1001)
แสดงรายการของ SQL Server ที่ทำการ Add เข้ามา
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-20.jpg?v=1001)
เลือกที่ Stored Procedure ที่จะทำการ Debug
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-21.jpg?v=1001)
คลิกวาเลือก Debug Procedure
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-22.jpg?v=1001)
ใส่ค่า Parameters ในกรณีที่ต้องการให้มีค่าส่งไปด้วย
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-23.jpg?v=1001)
โปรแกรมจะสร้าง New Query ให้ใหม่ โดย Input ค่าต่าง ๆ ไปให้ด้วย
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-24.jpg?v=1001)
เราสามารถ Debug เข้าไปใน Step ย่อยของ Procedure ด้วยการกด F11
![Debug Stored Procedure Debug Stored Procedure](https://www.thaicreate.com/upload/tutorial/sqlserver-stored-procedure-debug-visual-studio-25.jpg?v=1001)
ถ้ามี Breakpoint จะหยุดและแสดงค่าต่าง ๆ ของตัวแปร
|