ट्रिगर की ज्ञात सीमाएँ

SQL Server में Triggers बनाना और उनका अनुकूलन

Florin Angelescu

Instructor

ट्रिगर्स के फायदे

  • डेटाबेस इंटीग्रिटी के लिए उपयोग
  • बिज़नेस नियम सीधे डेटाबेस में लागू करें
  • तय करें कि डेटाबेस में किन स्टेटमेंट्स की अनुमति है
  • एक ही इवेंट से जटिल बिज़नेस लॉजिक चलाएँ
  • डेटाबेस और यूज़र कार्रवाइयों का ऑडिट करने का आसान तरीका
SQL Server में Triggers बनाना और उनका अनुकूलन

ट्रिगर्स के नुकसान

  • देखना और पहचानना कठिन
  • क्लाइंट ऐप्स या डिबगिंग के समय अदृश्य
  • ट्रबलशूट करते समय उनकी लॉजिक का पालन करना मुश्किल
  • सर्वर पर ओवरहेड बन सकते हैं और उसे धीमा कर सकते हैं
SQL Server में Triggers बनाना और उनका अनुकूलन

सर्वर-स्तरीय ट्रिगर्स ढूँढना

SELECT * FROM sys.server_triggers;
| name                 | parent_class_desc | create_date | is_disabled |...|
|----------------------|-------------------|-------------|-------------|---|
| DenyNewDatabases     | SERVER            | 2019-01-22  | 0           |...|
| DenyNewLinkedServers | SERVER            | 2019-01-22  | 1           |...|
| DenyDatabaseDelete   | SERVER            | 2019-01-22  | 1           |...|
SQL Server में Triggers बनाना और उनका अनुकूलन

डेटाबेस और टेबल ट्रिगर्स ढूँढना

SELECT * FROM sys.triggers;
| name                   | parent_class_desc | create_date | is_disabled | is_instead_of_trigger |
|----------------------|-------------------|-------------|---------------|-----------------------|
| TrackRetiredProducts   | OBJECT_OR_COLUMN  | 2019-04-19  | 0           | 0                     |
| PreventOrdersUpdate    | OBJECT_OR_COLUMN  | 2019-04-22  | 0           | 1                     |
| TrackDatabaseTables    | DATABASE          | 2019-04-23  | 0           | 0                     |
| KeepCanceledOrders     | OBJECT_OR_COLUMN  | 2019-04-27  | 0           | 0                     |
| DiscountsPreventDelete | OBJECT_OR_COLUMN  | 2019-04-27  | 0           | 1                     |
| PreventNewDiscounts    | OBJECT_OR_COLUMN  | 2019-04-27  | 0           | 1                     |
| PreventTableDeletion   | DATABASE          | 2019-04-27  | 0           | 0                     |
SQL Server में Triggers बनाना और उनका अनुकूलन

ट्रिगर डेफिनिशन देखना (विकल्प 1)

SSMS से ट्रिगर डेफिनिशन देखें

CREATE TRIGGER PreventOrdersUpdate
ON Orders
INSTEAD OF UPDATE
AS
RAISERROR ('Updates on "Orders" table
            are not permitted.
            Place a new order
            to add new products.', 16, 1);
SQL Server में Triggers बनाना और उनका अनुकूलन

ट्रिगर डेफिनिशन देखना (विकल्प 2)

SELECT definition
FROM sys.sql_modules
WHERE object_id = OBJECT_ID ('PreventOrdersUpdate');
| definition                                                   |
|--------------------------------------------------------------|
| CREATE TRIGGER PreventOrdersUpdate                           |
| ON Orders                                                    |
| INSTEAD OF UPDATE                                            |
| AS                                                           |
| RAISERROR ('Updates on "Orders" table are not permitted.     |
|             Place a new order to add new products.', 16, 1); |
SQL Server में Triggers बनाना और उनका अनुकूलन

ट्रिगर डेफिनिशन देखना (विकल्प 3)

SELECT OBJECT_DEFINITION (OBJECT_ID ('PreventOrdersUpdate'));
| (No column name)                                             |
|--------------------------------------------------------------|
| CREATE TRIGGER PreventOrdersUpdate                           |
| ON Orders                                                    |
| INSTEAD OF UPDATE                                            |
| AS                                                           |
| RAISERROR ('Updates on "Orders" table are not permitted.     |
|             Place a new order to add new products.', 16, 1); |
SQL Server में Triggers बनाना और उनका अनुकूलन

ट्रिगर डेफिनिशन देखना (विकल्प 4)

EXECUTE sp_helptext @objname = 'PreventOrdersUpdate';
| Text                                                         |
|--------------------------------------------------------------|
| CREATE TRIGGER PreventOrdersUpdate                           |
| ON Orders                                                    |
| INSTEAD OF UPDATE                                            |
| AS                                                           |
| RAISERROR ('Updates on "Orders" table are not permitted.     |
|             Place a new order to add new products.', 16, 1); |
SQL Server में Triggers बनाना और उनका अनुकूलन

ट्रिगर्स के लिए बेस्ट प्रैक्टिस

टिप्स:

  • अच्छे से डॉक्यूमेंटेड डेटाबेस डिज़ाइन
  • ट्रिगर डिज़ाइन में सिंपल लॉजिक
  • ट्रिगर्स का ज़्यादा उपयोग न करें
SQL Server में Triggers बनाना और उनका अनुकूलन

अभ्यास करते हैं!

SQL Server में Triggers बनाना और उनका अनुकूलन

Preparing Video For Download...