การ Enable และ Disable DML Trigger ใน SQL Server รวมถึงวิธีการตรวจเช็คสถานะ

ในบางกรณีที่ผู้ใช้ต้องการเพิ่มประสิทธิภาพให้กับเทเบิล (Table) โดยเฉพาะการนำเข้าข้อมูลปริมาณมากเข้าไปยังเทเบิล การปิดการทำงานหรือ Disable ของทริกเกอร์ (Trigger) ก็เป็นอีกวิธีหนึ่งที่จะทำให้การนำเข้าข้อมูลทำได้เร็วขึ้น โดยผู้ใช้สามารถทำได้ทั้งผ่าน SSMS (SQL Server Management Studio) และ คำสั่ง SQL

การ Disable และ Enable Trigger ผ่าน SSMS

  1. คลิกขวาทริกเกอร์ตัวที่ผู้ใช้ต้องการจะ Disable หรือ Enable
  2. จะมีเมนูปรากฏขึ้นมา ให้คลิก Disable หรือ Enable ตามที่ผู้ใช้ต้องการ

disable_Trigger_ssms

การ Disable และ Enable Trigger ผ่านคำสั่ง SQL

คำสั่งที่ปรากฏจะใช้ได้ตั้งแต่ SQL Server 2008 ขึ้นไป

คำสั่งที่ใช้ในการ Disable Trigger

DISABLE TRIGGER ชื่อทริกเกอร์ ON ชื่อเทเบิล

ผู้ใช้ยังสามารถ Disable Trigger ทุกตัวในเทเบิลโดยใช้คำสั่ง

DISABLE TRIGGER ALL ON ชื่อเทเบิล

คำสั่งที่ใช้ในการ Enable Trigger

ENABLE TRIGGER ชื่อทริกเกอร์ ON ชื่อเทเบิล

ผู้ใช้ยังสามารถ Enable Trigger ทุกตัวในเทเบิลโดยใช้คำสั่ง

ENABLE TRIGGER ALL ON ชื่อเทเบิล

ยกตัวอย่าง ผู้ใช้ต้องการ Disable ทริกเกอร์ที่ชื่อ iuPerson ซึ่งเกาะอยู่กับเทเบิล Person.Person คำสั่งที่ใช้จะเป็นดังนี้

DISABLE TRIGGER Person.iuPerson ON Person.Person

การตรวจเช็คสถานะของทริกเกอร์ผ่าน SSMS

สถานะของทริกเกอร์ว่า Enable หรือ Disable ให้ดูจากไอคอน ถ้ามีลูกศรแดงชี้ลง แสดงว่าทริกเกอร์ตัวนั้นถูก Disable อยู่

enable_disable_trigger

การตรวจเช็คสถานะของทริกเกอร์ผ่านคำสั่ง SQL

ให้ใช้คำสั่งต่อไปนี้

SELECT name, [object_id], is_disabled
FROM sys.triggers
WHERE name = 'ชื่อทริกเกอร์'

หากคอลัมน์ is_disabled มีค่าเป็น 1 แสดงว่าสถานะของทริกเกอร์ถูก Disable อยู่ หากเป็น 0 แสดงว่า Enable

หาข้อมูลเพิ่มเติมได้ที่ MSDN1 MSDN2 MSDN3

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s