ขั้นตอนแรก ผมจะสร้างเทเบิลมาก่อน 2 เทเบิล โดย Table_A คือตัวที่จะทำการเขียน Triggers ฝังไว้ ส่วน Table_B คือเทเบิลผลลัพธ์ โดยภายในจะมีฟิลด์สองฟิลด์เหมือนกันทั้งสองเทเบิลคือ id Type:int (auto run indentity) และ txt Type:nvarchar(50) แต่ความจริงแล้วการทำ Triggers ไม่ได้จำกัดนะครับว่าเทเบิลจะต้องเหมือนกัน
*** หมายเหตุ *** Type ของฟิลด์ txt เป็น nvarchar(50) ไม่ใช่ text ตามรูปนะครับ
ขั้นที่ 2 ทำการสร้าง Triggers โดยไปที่เทเบิลที่เราต้องการดักจับเหตุการณ์ ตัวอย่าง : Table_A -> Triggers -> คลิกขวา New Triggers...
หลังจากกด New Triggers แล้วจะเห็นโค๊ดดังนี้
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- เป็นชื่อของ Triggers นะครับ แต่ถ้าเราสร้างขึ้นมาแล้ว จะต้องเปลี่ยนจาก CREATE เป็น ALTER นะครับ
CREATE TRIGGER <Schema_Name, sysname, Schema_Name>.<Trigger_Name, sysname, Trigger_Name>
-- ส่วนนี้คือส่วนที่บอกว่าจะดักเหตุการณ์ที่เทเบิลไหน
ON <Schema_Name, sysname, Schema_Name>.<Table_Name, sysname, Table_Name>
-- ในส่วนนี้จะเป็นส่วนที่บอกว่าเราต้องการจะดักจับเหตุการณ์ใด
-- สามารถเลือกดักจับพร้อมกันได้ทั้ง 3 เหตุการณ์นะครับ
AFTER <Data_Modification_Statements, , INSERT,DELETE,UPDATE>
AS
BEGIN
-- ส่วนนี้จะเป็นส่วนการเขียนโค๊ดการทำงานต่างๆ
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
END
GO
โค๊ดด้านล่างนี้คือโค๊ดตัวอย่าง การทำงานก็คือเมื่อมีการเพิ่มข้อมูลที่เทเบิล A ก็ในนำข้อมูลนั้นไปใส่เทเบิล B ด้วย
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER SnareInsert -- *** EDIT สร้าง Trigger ชื่อ SnareInsert
ON dbo.Table_A -- *** EDIT ดักจับเหตุการณ์ที่เทเบิล A
AFTER INSERT -- *** EDIT ดักจับเหตุการณ์ INSERT
AS
BEGIN
DECLARE @txtInsert nvarchar(50) -- *** EDIT ประกาศตัวแปรชื่อ txtInsert ประเภท nvarchar(50)
SET @txtInsert = (SELECT txt FROM inserted) -- *** EDIT เซ็ตค่าให้ txtInsert เท่ากับค่า txt ที่ Insert เข้ามา
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
INSERT INTO Table_B VALUES (@txtInsert) -- *** EDIT ทำการ Insert ข้อมูลไปที่เทเบิล B
END
GO
ผลลัพธ์ : รูปด้านล่างนี้แสดงถึงผลจากการเพิ่มข้อมูล "FromTableA" เข้าสู่ Table_A หลังจากนั้น ก็เพิ่มข้อมูล "FromTableB" เข้าสู่ Table_B สังเกตได้ว่าข้อมูลที่เข้าสู่เทเบิล A จะถูก insert ไปที่เทเบิล B ด้วย



