รหัสหลักสูตร
SQL-PG-SP

SQL Server Programming - Stored Procedure

ระยะเวลา
2
วัน (
12
ชม.) |ช่วงเวลา 9:00 - 16:00 น.
ประเภทการอบรม
Public
Inhouse
ราคา
9,900
บาท
*ราคาดังกล่าวยังไม่รวมภาษีมูลค่าเพิ่ม
หลักสูตร SQL Server Programming Stored Procedure
SQL Server Programming Stored Procedure Course
ติดต่อเรา สำรองที่นั่ง 022194304-5
ทักษะ (ระบุได้หลายทักษะ)
รูปแบบการอบรม
  • Classroom
  • Hybrid
?
Classroom : อบรมแบบ Class Room ณ ห้องอบรม 9EXPERT
Hybrid : (เลือกอบรมแบบ Class Room หรือ Ms Teams)

รอบการอบรม

คำโปรย

Stored Procedure และ Function เป็นโปรแกรมย่อยในฐานข้อมูลที่สร้างจากพื้นฐานความรู้การเขียนสคริปต์ หลักสูตรนี้เรียนรู้การออกแบบการสร้างคำสั่ง เพื่อสร้าง Script สำหรับ Stored Procedure, Function, Trigger เพื่อพัฒนาระบบฐานข้อมูล Data Source พร้อมการควบคุม Transaction โดยเน้นการทำงานจริงและเรียนรู้ข้อจำกัดของแต่ละ Object พร้อมแนวคิดด้านประสิทธิภาพและความปลอดภัยสูงสุดในการทำงาน ในรูปแบบของกรณีศึกษา และ Workshop เข้มข้น

วัตถุประสงค์

  1. ผู้อบรมเข้าใจองค์ประกอบต่างๆ ในการสร้าง Script
  2. ผู้อบรมสามารถสร้าง Script และนำ Script ไปใช้สร้างเป็น Objects ชนิดต่างๆ ได้อย่างเหมาะสม
  3. ผู้อบรมสามารถประกาศ Transaction และเลือกใช้ Isolation Level ได้อย่างเหมาะสม

หลักสูตรนี้เหมาะสำหรับ

  1. ผู้ที่มีพื้นฐานการ Query ด้วย T-SQL แต่ต้องการทำงานร่วมกับ Transactions
  2. Developer ที่ต้องการพัฒนาและจัดการโค้ดที่ดีขึ้นอีกระดับ
  3. Developer ที่ต้องการเรียนรู้ Script เกี่ยวกับ Database Performance

พื้นฐานของผู้เข้าอบรม

  1. มีความเข้าใจเกี่ยวกับฐานข้อมูลเชิงสัมพันธ์ (Relational Database) และการออกแบบฐานข้อมูลมาบ้าง
  2. มีความสามารถในการ Query ข้อมูลเป็นอย่างดี
  3. มีประสบการณ์ในภาษาโปรแกรมมิ่ง ภาษาใด ภาษาหนึ่งมาบ้าง

ความต้องการของระบบ

  1. ระบบปฏิบัติการ Windows 11 / 10
  2. Remote Desktop Connection (RDP)
  3. Internet

หัวข้อการฝึกอบรม

  • สถาปัตยกรรมพื้นฐานของ Microsoft SQL Server
  • การใช้งาน SQL Server Management Studio เบื้องต้น
  • การใช้งาน Visual Studio เบื้องต้น

  • ประเภทของ Operator
  • System Functions แต่ละประเภท
  • ตัวแปร
  • นิพจน์
  • Batch Control
  • Flow Control
  • Comment

  • รู้จักกับ Batch และ Scope
    • การสร้างและใช้งานตัวแปรภายใน scope
  • การควบคุม Flow Control
    • การใช้ IF…ELSE
    • การใช้ WHILE
  • การแจ้งข้อผิดพลาด
    • แจ้งข้อผิดพลาดด้วยคำสั่ง RAISERROR
    • แจ้งข้อผิดพลาดด้วยคำสั่ง THROW
  • การใช้งาน System Function ที่เกี่ยวข้อง เพื่อแจ้งข้อผิดพลาดที่สร้างขึ้นเอง
  • การดักรับ Error ด้วย TRY/CATCH
    • เขียนโปรแกรมโดยใช้ TRY/CATCH Block
    • Function ต่างๆ ของ Error Handling
    • ข้อผิดพลาดที่ดักได้และไม่ได้
    • ข้อผิดพลาดของ Managed Code

  • รู้จักกับ Transaction
  • ประเภทของ Transaction
    • Implicit Transaction
    • Explicit Transaction
    • Automatic Transaction
  • ข้อผิดพลาดกับ Transaction
  • Transaction กับ Nesting Errors
  • การประกาศ Transaction ใน TRY/CATCH
  • การใช้ XACT_ABORT
  • คำสั่ง BEGIN/COMMIT/ ROLLBACK TRANSACTION

  • รู้จัก Concurrency Models
  • ปัญหาภาวะการใช้งานพร้อมกัน (Concurrency Problems)
  • รู้จัก Transaction Isolation Levels
    • Pessimistic isolation levels
    • Optimistic (row versioning) isolation levels
  • การใช้งาน Row Versioning Isolation Levels

  • การออกแบบ Stored Procedure
    • ประโยชน์ของ Stored Procedures
    • การเรียกใช้ System Stored Procedures
    • คำสั่งที่อยู่ใน Stored Procedures ไม่ได้
  • การสร้าง Stored Procedure
    • การกำหนด Parameter
    • การดักรับ Error
    • อื่นๆ
  • คำแนะนำในการสร้าง Stored Procedures
  • เข้ารหัส Stored Procedures
  • การสั่งรัน Stored Procedure
  • ปัญหา Parameter Sniffing กับประสิทธิภาพ
  • การควบคุม Security Context

  • ภาพรวมของฟังก์ชัน
    • ประเภทของฟังก์ชัน
    • ฟังก์ชันของระบบ
  • ออกแบบและสร้าง Scalar Functions
  • ออกแบบและสร้าง Table-Valued Functions
    • Inline Table-Valued Function
    • Multi-Statement Table-Valued Function
  • ข้อคำนึงในการสร้างฟังก์ชัน
    • ผลกระทบต่อประสิทธิภาพจาก Scalar Functions
    • ผลกระทบต่อประสิทธิภาพจาก Multi-Statement Table-Value Functions
  • ทางเลือกอื่น นอกเหนือจากฟังก์ชัน
  • การควบคุม Security Context

  • รู้จักกับ DML Triggers
  • ข้อคำนึงสำหรับการเลือกใช้ Triggers และทางเลือกอื่น
  • การสร้าง DML Triggers
    • ตาราง (เสมือน) Inserted และ Deleted
    • การตั้ง SET NOCOUNT ON
    • การสร้าง AFTER INSERT Triggers
    • การสร้าง AFTER DELETE Triggers
    • การสร้าง AFTER UPDATE Triggers
    • การใช้ฟังก์ชัน UPDATE
  • รู้จัก Instead of Trigger
    • เทียบระหว่าง AFTER Triggers กับ INSTEAD OF Triggers
    • การสร้าง INSTEAD OF Triggers
  • ข้อคำนึงด้านประสิทธิภาพ
    • การเกิด Nested Triggers
    • การเกิด Recursive Triggers
    • การควบคุมลำดับการเกิด Triggers