Microsoft SQL Server
उत्प्रेरक
खोज…
परिचय
ट्रिगर एक विशेष प्रकार की संग्रहित प्रक्रिया है, जिसे किसी घटना के होने के बाद स्वचालित रूप से निष्पादित किया जाता है। ट्रिगर्स दो प्रकार के होते हैं: डेटा डेफिनिशन लैंग्वेज ट्रिगर और डेटा मैनिपुलेशन लैंग्वेज ट्रिगर।
यह आमतौर पर एक टेबल से बंधा होता है और स्वचालित रूप से आग लग जाती है। आप स्पष्ट रूप से किसी भी ट्रिगर को नहीं बुला सकते हैं।
ट्रिगर के प्रकार और वर्गीकरण
SQL सर्वर में, ट्रिगर की दो श्रेणियां हैं: DDL ट्रिगर और DML ट्रिगर।
DDL ट्रिगर डेटा डेफिनिशन लैंग्वेज (DDL) इवेंट्स के जवाब में निकाल दिया जाता है। इन घटनाओं के मुख्य रूप से Transact SQL कथन है कि शुरू खोजशब्दों के साथ के अनुरूप CREATE
, ALTER
और DROP
।
DML ट्रिगर डेटा मैनीपुलेशन लैंग्वेज (DML) ईवेंट के जवाब में निकाल दिया जाता है। ये घटनाएँ INSERT
, UPDATE
और DELETE
कीवर्ड से शुरू होने वाले Transact-SQL स्टेटमेंट से मेल खाती हैं।
DML ट्रिगर को दो मुख्य प्रकारों में वर्गीकृत किया गया है:
ट्रिगर के बाद (ट्रिगर के लिए)
- INSERT ट्रिगर के बाद।
- अद्यतन ट्रिगर के बाद।
- DELETE ट्रिगर के बाद।
ट्रिगर्स के बजाय
- INSERT ट्रिगर का INSEAD।
- अद्यतन ट्रिगर का पहला संस्करण।
- DELETE ट्रिगर का INSTEAD।
डीएमएल ट्रिगर
डीएमएल ट्रिगर को डीएमएल स्टेटमेंट ( insert
, update
या delete
) की प्रतिक्रिया के रूप में निकाल दिया जाता है।
एक एकल तालिका या दृश्य के लिए एक या एक से अधिक डीएमएल घटनाओं को संबोधित करने के लिए एक डीएमएल ट्रिगर बनाया जा सकता है। इसका मतलब यह है कि एक एकल डीएमएल ट्रिगर एक विशिष्ट तालिका या दृश्य से रिकॉर्ड डालने, अपडेट करने और हटाने का काम कर सकता है, लेकिन केवल उस एकल तालिका या दृश्य पर बदले जा रहे डेटा को संभाल सकता है।
DML ट्रिगर inserted
और deleted
तालिकाओं तक पहुँच प्रदान करता है जो उस डेटा के बारे में जानकारी रखता है जो ट्रिगर को निकाल देने वाले विवरण को सम्मिलित, अद्यतन या हटाने से प्रभावित होगा।
ध्यान दें कि DML ट्रिगर स्टेटमेंट आधारित हैं, न कि पंक्ति आधारित। इसका मतलब यह है कि यदि कथन अधिक प्रभावित हुआ तो एक पंक्ति, सम्मिलित या हटाई गई तालिकाओं में एक पंक्ति अधिक होगी।
उदाहरण:
CREATE TRIGGER tblSomething_InsertOrUpdate ON tblSomething
FOR INSERT
AS
INSERT INTO tblAudit (TableName, RecordId, Action)
SELECT 'tblSomething', Id, 'Inserted'
FROM Inserted
GO
CREATE TRIGGER tblSomething_InsertOrUpdate ON tblSomething
FOR UPDATE
AS
INSERT INTO tblAudit (TableName, RecordId, Action)
SELECT 'tblSomething', Id, 'Updated'
FROM Inserted
GO
CREATE TRIGGER tblSomething_InsertOrUpdate ON tblSomething
FOR DELETE
AS
INSERT INTO tblAudit (TableName, RecordId, Action)
SELECT 'tblSomething', Id, 'Deleted'
FROM Deleted
GO
ऊपर दिए गए सभी उदाहरण tblAudit में रिकॉर्ड जोड़ेंगे, जब भी कोई रिकॉर्ड जोड़ा जाएगा, हटाया जाएगा या tblSomething में अपडेट किया जाएगा।