Wednesday, September 21, 2016

การเขียน Stored Procedure บน SQL Server


แหล่งข้อมูล http://www.thaicreate.com/tutorial/sqlserver-stored-procedure-create.html

 
ตอนที่ 1 : รู้จักและการเขียน Stored Procedure บน SQL Server (SQL Server : Stored Procedure) ในบทความของไทยครีเอทผมอาจจะไม่ค่อยได้พูดถึง Stored Procedure ซะเท่าไหร่ เพราะในการเขียนโปรแกรมทั่ว ๆ ไป ที่ไม่ต้องการความซับซ้อนมากนัก การเขียน SQL Query ปกติก็สามารถทำงานได้ และในการเขียนโปรแกรมรุ่นใหม่ ๆ ไม่ว่าจะเป็น PHP หรือ .Net Application หรืออื่น ๆ ก็มี Framework ใหม่ ๆ ที่ออกมาช่วยจัดการ ORM(Oreited Relational Mapping) ช่วยการเขียนติดต่อกับ Database นั้นง่ายมาก ยิ่งทำให้การเขียน Stored Procedure นั้นอาจจะไม่ค่อยมีความจำเป็นซะเท่าไหร่ และโดยเฉพาะใน .Net Application ที่ได้รับความนิยมมากในปัจุบัน ยังมี Framework ที่จัดการกับ Database อย่างเช่น LINQ to SQL , LINQ to Entities หรือ Entity Framework Model ที่สนับสนุนการเขียน Coding ทำการ Select, Insert, Update, Delete ในรูปแบบของ Syntax ภาษานั้น ๆ บนโปรแกรมได้เลย โดยไม่ต้องสนใจที่จะเขียน SQL และยังมีประโยชน์เมื่อต้องการเปลี่ยนประเภทของ Database เช่น MySQL, Oracle ก็ไม่ต้องมานั้งทำการแก้ไขหรือเขียน Stored Procedure ใหม่

การเขียน Stored Procedure จะจำเป็นมากในการพัฒนาระบบขนาดใหญ่ ที่มีการจัดเก็บข้อมูลและประมวลผลจำนวนมาก ๆ เพราะการเขียน Query ในปกติ ที่มีการติดต่อกับข้อมูลหลาย ๆ ครั้ง เราจะต้อง Select แล้วใช้โปรแกรมอ่านค่า เมื่ออ่านได้ค่าแล้วค่อยส่งไปประมวลผลที่ Database ซ้ำ ๆ ซึ่งจะเป็นการทำงานซ้ำซ้อน มีการรับส่งระหว่าง Application กับ Database เป็นสิบหรือหลายร้อยครั้ง ซึ่งผลที่ตามมาคือ Performance ของโปรแกรมจะทำงานช้ามาก ทางเลือกในการแก้ปํยหานี้ก็คือ เราใช้การทำงานซ้ำซ้อนทั้งหมดนี้ที่ Database แทน โดยเราเพียงส่งค่า Parameters ที่จำเป็นต้องใช้ จากนั้นบน Database ก็จะนำค่า Parameters ที่ส่งไปนั้น ทำงานตามคำสั่งต่าง ๆ บน Stored Procedure ที่ เราเขียนขึ้น เมื่อได้ค่าที่ต้องการค่อยส่งค่า Result กลับมายังโปรแกรม วิธีนี้จะเป็นการเพิ่มประสิทธิภาพการทำงานของโปรแกรมให้ทำงานเร็วขึ้น และลด Traffic ระหว่าง Database กับ Application ได้สูงมาก

ข้อดีการใช้ Stored Procedure

  • Syntax เขียนง่าย เข้าใจง่าย และในปัจจุบันมี Tools ที่ช่วยให้การ Debug ง่ายมาก
  • เพิ่มประสิทธิภาพการทำงานการ Query Database ได้อย่างดีเยี่ยม ลดภาระการทำงานของ Application
  • ลด Traffic ของ Network หรือระหว่าง Database กับ Application
  • การพัฒนาค่อนข้างจะเป็นระบบ แยกระหว่าง Application Logic กับ Database Logic ได้ชัดเจน เช่น ถ้าต้องการแก้ไข Logic ของ Database อาจจะเพียงแก้ไขที่ Stored Procedure เท่านั้น
ข้อเสียการใช้ Stored Procedure
  • การเขียน Stored จะผูกกกับ Database นั้น ๆ เมื่อเปลี่ยน Database ไปใช้ตัวอื่น จะต้องเขียน Stored ใหม่ทั้งหมด
  • Syntax ของการเขียน Stored Procedure จะไม่เหมือนกัน
  • เมื่อนำไปใช้บน Production Server การ Debug ตรวจสอบหาข้อผิดพลาดทำได้ยากพอสมควร
ตอนที่ 2 : การสร้าง Parameters รับค่าบน Stored Procedure (SQL Server : Stored Procedure) 
ตอนที่ 3: การ Print และแสดงผลบน Stored Procedure (SQL Server : Stored Procedure) 
ตอนที่ 4 : การสร้างตัวแปร Declare Variable บน Stored Procedure (SQL Server : Stored Procedure
ตอนที่ 5 : การสร้าง Declare Table สร้างตัวแปรแบบตาราง (SQL Server : Stored Procedure) 
ตอนที่ 6 : การสร้าง Loop ข้อมูลบน Stored Procedure (SQL Server : Stored Procedure) 
ตอนที่ 7 : การใช้ Cursor บน Stored Procedure (SQL Server : Stored Procedure) 
ตอนที่ 8 : การใช้ If ....Else If...Else สร้างเงื่อนไข (SQL Server : Stored Procedure) 
ตอนที่ 9 : การใช้ Try Catch บน Stored Procedure (SQL Server : Stored Procedure) 
ตอนที่ 10 : การใช้ OUTPUT และ OUT เพื่อส่งค่ากลับ (SQL Server : Stored Procedure) 
ตอนที่ 11 : การใช้ Transaction เพื่อ Rollback และ Commit (SQL Server : Stored Procedure) 
ตอนที่ 12 : การใช้ Cursor ระหว่าง (Between) Stored Procedure (SQL Server : Stored Procedure) 
ตอนที่ 13 : การ Debug Stored Procedure บน Visual Studio 2010,2012,2013,2015 และอื่น ๆ 
ตอนที่ 14 : การสร้าง View Table บน SQL Server Database (SQL Server : View Table) 
ตอนที่ 15 : การสร้าง Trigger บน SQL Server Database (SQL Server : Trigger) 
ตอนที่ 16 : การสร้าง Function บน Server Database (SQL Server : Function) 
ตอนที่ 17 : PHP เรียกใช้ EXEC/CALL - SQL Server Stored Procedure ด้วย sqlsrv และ pdo 
ตอนที่ 18 : Visual Basic (VB.Net) เรียกใช้ EXEC SQL Server Stored Procedure 
ตอนที่ 19 : Java เรียกใช้ EXEC/CALL - SQL Server Stored Procedure ด้วย (JDBC) 
ตอนที่ 20 : Visual C# (C# .Net) เรียกใช้ EXEC/CALL - SQL Server Stored Procedure 

No comments:

Post a Comment