ट्रिगर प्रबंधन

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

Florin Angelescu

Instructor

sys.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 बनाना और उनका अनुकूलन

sys.triggers से जानकारी पाना

name

object_id

parent_class

parent_class_desc

parent_id

ट्रिगर नाम

ट्रिगर का यूनिक आइडेंटिफायर

ट्रिगर टाइप (इंटीजर)

ट्रिगर टाइप (टेक्स्ट)

पैरेंट ऑब्जेक्ट का यूनिक आइडेंटिफायर

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

sys.triggers से जानकारी पाना

create_date

modify_date

is_disabled

is_instead_of_trigger

बनने की तारीख

आखिरी बदलाव की तारीख

वर्तमान स्टेट

INSTEAD OF या AFTER ट्रिगर

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

sys.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 बनाना और उनका अनुकूलन

sys.trigger_events से जानकारी पाना

SELECT * FROM sys.trigger_events;
| object_id  | type | type_desc       | event_group_type | event_group_type_desc |
|------------|------|-----------------|------------------|-----------------------|
| 1285579618 | 24   | CREATE_INDEX    | NULL             | NULL                  |
| 1301579675 | 52   | ALTER_PROCEDURE | NULL             | NULL                  |
| 1301579675 | 53   | DROP_PROCEDURE  | NULL             | NULL                  |
| 1333579789 | 1    | INSERT          | NULL             | NULL                  |
| 1365579903 | 2    | UPDATE          | NULL             | NULL                  |
| 1381579960 | 3    | DELETE          | NULL             | NULL                  |
| 1557580587 | 21   | CREATE_TABLE    | 10017            | DDL_TABLE_VIEW_EVENTS |
| 1557580587 | 22   | ALTER_TABLE     | 10017            | DDL_TABLE_VIEW_EVENTS |
| 1557580587 | 23   | DROP_TABLE      | 10017            | DDL_TABLE_VIEW_EVENTS |
SQL Server में Triggers बनाना और उनका अनुकूलन

sys.trigger_events से जानकारी पाना

object_id

type

type_desc

event_group_type

event_group_type_desc

ट्रिगर का यूनिक आइडेंटिफायर

इवेंट टाइप (इंटीजर)

इवेंट टाइप (टेक्स्ट)

इवेंट ग्रुप टाइप (इंटीजर)

इवेंट ग्रुप टाइप (टेक्स्ट)

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

sys.trigger_events से जानकारी पाना

DDL_TABLE_VIEW_EVENTS

CREATE_TABLE DROP_TABLE ALTER_TABLE

CREATE_VIEW DROP_VIEW ALTER_VIEW

CREATE_INDEX DROP_INDEX ALTER_INDEX

CREATE_STATISTICS DROP_STATISTICS

UPDATE_STATISTICS CREATE_XML_INDEX

[...]

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

sys.server_trigger_events से जानकारी पाना

SELECT * FROM sys.server_trigger_events;
| object_id  | type | type_desc              | event_group_type | event_group_type_desc |
|------------|------|------------------------|------------------|-----------------------|
| 1285579618 | 24   | CREATE_LINKED_SERVER   | NULL             | NULL                  |
| 1301579675 | 52   | DROP_DATABASE          | 10004            | DDL_DATABASE_EVENTS   |
SQL Server में Triggers बनाना और उनका अनुकूलन

sys.trigger_event_types से जानकारी पाना

SELECT * FROM sys.trigger_event_types;
| type  | type_name        | parent_type |
|-------|------------------|-------------|
| 21    | CREATE_TABLE     | 10018       |
| 22    | ALTER_TABLE      | 10018       |
| 23    | DROP_TABLE       | 10018       |
| 24    | CREATE_INDEX     | 10020       |
| 25    | ALTER_INDEX      | 10020       |
| 26    | DROP_INDEX       | 10020       |
| 10018 | DDL_TABLE_EVENTS | 10017       |
SQL Server में Triggers बनाना और उनका अनुकूलन

व्यवहार में ट्रिगर प्रबंधन

SELECT t.name AS TriggerName,
       t.parent_class_desc AS TriggerType,
       te.type_desc AS EventName,
       o.name AS AttachedTo,
       o.type_desc AS ObjectType
FROM sys.triggers AS t
INNER JOIN sys.trigger_events AS te ON te.object_id = t.object_id
LEFT OUTER JOIN sys.objects AS o ON o.object_id = t.parent_id;
SQL Server में Triggers बनाना और उनका अनुकूलन

व्यवहार में ट्रिगर प्रबंधन

| TriggerName               | TriggerType      | EventName       | AttachedTo | ObjectType |
|---------------------------|------------------|-----------------|------------|------------|
| IndexSecurityTrigger      | DATABASE         | CREATE_INDEX    | NULL       | NULL       |
| ProcedureSecurityTrigger  | DATABASE         | ALTER_PROCEDURE | NULL       | NULL       |
| ProcedureSecurityTrigger  | DATABASE         | DROP_PROCEDURE  | NULL       | NULL       |
| CustomerDiscountHistory   | OBJECT_OR_COLUMN | UPDATE          | Discounts  | USER_TABLE |
| TrackRetiredProducts      | OBJECT_OR_COLUMN | DELETE          | Products   | USER_TABLE |
| PreventOrdersUpdate       | OBJECT_OR_COLUMN | UPDATE          | Orders     | USER_TABLE |
| PreventDiscountsDelete    | OBJECT_OR_COLUMN | DELETE          | Discounts  | USER_TABLE |
SQL Server में Triggers बनाना और उनका अनुकूलन

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

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

Preparing Video For Download...