บทความ
Trigger ใน SQL Server คืออะไร
Trigger ใน SQL Server เป็นโค้ดที่ถูกเรียกใช้งานโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงข้อมูลใน Table ที่ Trigger ถูกเชื่อมโยงไปยังนั้น โดย Trigger สามารถใช้งานได้ในหลายสถานการณ์ เช่น การเพิ่มข้อมูลใน Table, การอัปเดตข้อมูลใน Table หรือ การลบข้อมูลออกจาก Table ซึ่งสามารถทำได้ง่ายๆ ด้วยการเขียน Trigger Code ภาษา T-SQL ใน SQL Server
ตัวอย่างการเขียน Trigger ใน SQL Server ด้วยภาษา T-SQL ได้แก่
-
Trigger สำหรับการ Insert ข้อมูลใน Table
CREATE TRIGGER [dbo].[InsertTrigger]
ON [dbo].[Customers]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CustomerID INT
SELECT @CustomerID = inserted.CustomerID FROM inserted
INSERT INTO CustomerLog (CustomerID, LogMessage, LogDate)
VALUES (@CustomerID, 'New customer added', GETDATE())
END
ในตัวอย่างด้านบน เราสร้าง Trigger ชื่อ InsertTrigger ใน Table Customers โดย Trigger นี้จะถูกเรียกใช้งานเมื่อมีการ Insert ข้อมูลใน Table Customers โดย Trigger จะทำการเพิ่มข้อมูลลงใน Table CustomerLog เพื่อบันทึก Log ว่ามีการเพิ่มข้อมูลลงใน Table Customers
-
Trigger สำหรับการ Update ข้อมูลใน Table
CREATE TRIGGER [dbo].[UpdateTrigger]
ON [dbo].[Customers]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CustomerID INT
SELECT @CustomerID = inserted.CustomerID FROM inserted
INSERT INTO CustomerLog (CustomerID, LogMessage, LogDate) VALUES (@CustomerID, 'Customer information updated', GETDATE())
END
ในตัวอย่างด้านบน เราสร้าง Trigger ชื่อ UpdateTrigger ใน Table Customers โดย Trigger นี้จะถูกเรียกใช้งานเมื่อมีการ Update ข้อมูลใน Table Customers โดย Trigger จะทำการเพิ่มข้อมูลลงใน Table CustomerLog เพื่อบันทึก Log ว่ามีการอัปเดตข้อมูลใน Table Customers
-
Trigger สำหรับการ Delete ข้อมูลใน Table
CREATE TRIGGER [dbo].[DeleteTrigger]
ON [dbo].[Customers]AFTER DELETE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CustomerID INT
SELECT @CustomerID = deleted.CustomerID FROM deleted
INSERT INTO CustomerLog (CustomerID, LogMessage, LogDate)
VALUES (@CustomerID, 'Customer deleted', GETDATE())
END
ในตัวอย่างด้านบน เราสร้าง Trigger ชื่อ DeleteTrigger ใน Table Customers โดย Trigger นี้จะถูกเรียกใช้งานเมื่อมีการ Delete ข้อมูลใน Table Customers โดย Trigger จะทำการเพิ่มข้อมูลลงใน Table CustomerLog เพื่อบันทึก Log ว่ามีการลบข้อมูลใน Table Customers
โดยสามารถเขียน Trigger ได้ตามความต้องการของแต่
หนังสือพัฒนาตัวเอง
จุดเริ่มต้นที่ชัดเจน