Megosztás a következőn keresztül:


DML-eseményindítók adatainak lekérése

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Ez a témakör azt ismerteti, hogyan kérhet le információkat az SQL Server DML-eseményindítóiról az SQL Server Management Studio vagy a Transact-SQL használatával. Ezek az információk tartalmazhatják a táblák eseményindítóinak típusait, az eseményindító nevét, tulajdonosát és a létrehozás vagy módosítás dátumát. Ha az eseményindító nem lett titkosítva a létrehozásakor, beolvashatja az eseményindító definícióját. A definícióval könnyebben megértheti, hogy egy eseményindító hogyan befolyásolja azt a táblát, amelyen definiálva van. Emellett megtudhatja azokat az objektumokat is, amelyeket egy adott eseményindító használ. Ezekkel az információkkal azonosíthatja azokat az objektumokat, amelyek hatással vannak az eseményindítóra, ha azok módosulnak vagy törlődnek az adatbázisban.

Ebben a témában

Mielőtt hozzákezdene

Biztonság

Engedélyek

sys.sql.modules, sys.object, sys.triggers, sys.events, sys.trigger_events
A katalógusnézetekben a metaadatok láthatósága olyan biztonságos adatokra korlátozódik, amelyek egy felhasználó tulajdonában vannak, vagy amelyeken a felhasználó engedélyt kapott. További információ: Metaadatok láthatóságának konfigurációja.

OBJECT_DEFINITION, OBJEKTUMTULAJDONSÁG, sp_helptext
A nyilvános szerepkör tagságát igényli. A felhasználói objektumok definíciója látható az objektum tulajdonosa vagy azok számára, akik rendelkeznek a következő engedélyek bármelyikével: ALTER, CONTROL, TAKE OWNERSHIP vagy VIEW DEFINITION. Ezeket az engedélyeket implicit módon a db_owner, db_ddladminés db_securityadmin rögzített adatbázis-szerepkörök tagjai birtokolják.

sys.sql_expression_dependencies
A VIEW DEFINITION engedélyre van szükség az adatbázison, valamint szükséges a SELECT engedéllyel rendelkező sys.sql_expression_dependencies bejegyzésekhez az adatbázisban. Alapértelmezés szerint a SELECT engedély csak a db_owner rögzített adatbázis-szerepkör tagjai számára van megadva. Ha a SELECT és a VIEW DEFINITION engedélyeket egy másik felhasználó kapja meg, a jogosult megtekintheti az adatbázis összes függőségét.

Az SQL Server Management Studio használata

DML-eseményindító definíciójának megtekintése

  1. Object Explorer-ben csatlakozzon az Adatbázis-motor egy példányára, majd bontsa ki azt a példányt.

  2. Bontsa ki a kívánt adatbázist, bontsa ki Táblák, majd bontsa ki azt a táblát, amely tartalmazza azt az eseményindítót, amelyhez meg szeretné tekinteni a definíciót.

  3. Bontsa ki az eseményindítókat, kattintson a jobb gombbal a kívánt eseményindítóra, majd kattintson a módosításparancsra. A DML-eseményindító definíciója megjelenik a lekérdezési ablakban.

DML-eseményindító függőségeinek megtekintése

  1. Object Explorer-ben csatlakozzon az Adatbázis-motor egy példányára, majd bontsa ki azt a példányt.

  2. Bontsa ki a kívánt adatbázist, bontsa ki Táblák, majd bontsa ki a megtekinteni kívánt eseményindítót és függőségeit tartalmazó táblát.

  3. Nyissa meg a eseményindítóklistáját. Kattintson a jobb gombbal a kívánt eseményindítóra, majd kattintson a Függőségek megtekintésegombra.

  4. Az Objektumfüggőségek ablakban a DML-eseményindítótól függő objektumok megtekintéséhez jelölje ki <DML-eseményindító nevétől függő objektumokat>. Az objektumok a Függőségek területen jelennek meg.

    Ha meg szeretné tekinteni azokat az objektumokat, amelyektől a DML függ, jelölje ki olyan objektumokat, amelyektől <DML-eseményindító neve> függ. Az objektumok a Függőségek területen jelennek meg. Bontsa ki az egyes csomópontokat az összes objektum megtekintéséhez.

  5. A Függőségek területen megjelenő objektumra vonatkozó információk beszerzéséhez kattintson az objektumra. A Kijelölt objektum mezőben a Név, Típusés Függőségtípus mezőben találhatók meg az információk.

  6. Az Objektumfüggőségek ablak bezárásához kattintson OKgombra.

A Transact-SQL használata

DML-eseményindító definíciójának megtekintése

  1. Csatlakozzon az adatbázismotorhoz.

  2. A Standard sávon kattintson Új lekérdezéselemre.

  3. Másolja és illessze be az alábbi példák egyikét a lekérdezési ablakba, majd kattintson a Végrehajtásgombra. Mindegyik példa bemutatja, hogyan tekintheti meg a iuPerson eseményindító definícióját.

USE AdventureWorks2022;  
GO  
SELECT definition   
FROM sys.sql_modules  
WHERE object_id = OBJECT_ID(N'Person.iuPerson');   
GO  
USE AdventureWorks2022;   
GO  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.iuPerson')) AS ObjectDefinition;   
GO  
  
USE AdventureWorks2022;   
GO  
EXEC sp_helptext 'Person.iuPerson'  
GO  
  

DML-eseményindító függőségeinek megtekintése

  1. Csatlakozzon az adatbázismotorhoz.

  2. A Standard sávon kattintson Új lekérdezéselemre.

  3. Másolja és illessze be az alábbi példák egyikét a lekérdezési ablakba, majd kattintson a Végrehajtásgombra. Minden példa bemutatja, hogyan tekintheti meg iuPerson eseményindító függőségeit.

USE AdventureWorks2022;   
GO  
SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name,   
    o.type_desc AS referencing_description,   
    COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id,   
    referencing_class_desc, referenced_class_desc,   
    referenced_server_name, referenced_database_name, referenced_schema_name,   
    referenced_entity_name,   
    COALESCE(COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name,   
    is_caller_dependent, is_ambiguous  
FROM sys.sql_expression_dependencies AS sed  
INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id  
WHERE referencing_id = OBJECT_ID(N'Person.iuPerson');   
GO  
  

DML-eseményindítók adatainak megtekintése az adatbázisban

  1. Csatlakozzon az adatbázismotorhoz.

  2. A Standard sávon kattintson Új lekérdezéselemre.

  3. Másolja és illessze be az alábbi példák egyikét a lekérdezési ablakba, majd kattintson a Végrehajtásgombra. Minden példa bemutatja, hogyan tekintheti meg az adatbázisban található DML-eseményindítókkal (TR) kapcsolatos információkat.

USE AdventureWorks2022;   
GO  
SELECT  name, parent_id, create_date, modify_date, is_instead_of_trigger  
FROM sys.triggers  
WHERE type = 'TR';   
GO  
  
USE AdventureWorks2022;   
GO  
SELECT  name, object_id, schema_id, parent_object_id, type_desc, create_date, modify_date, is_published  
FROM sys.objects  
WHERE type = 'TR';   
GO  
  
USE AdventureWorks2022;   
GO  
SELECT OBJECTPROPERTY(OBJECT_ID(N'Person.iuPerson'), 'ExecIsInsteadOfTrigger');   
GO  
  

DML-eseményindítót kiváltó események adatainak megtekintése

  1. Csatlakozzon az adatbázismotorhoz.

  2. A Standard sávon kattintson Új lekérdezéselemre.

  3. Másolja és illessze be az alábbi példák egyikét a lekérdezési ablakba, majd kattintson a Végrehajtásgombra. Minden példa bemutatja, hogyan tekintheti meg a iuPerson eseményindítót kiváltó eseményeket.

USE AdventureWorks2022;   
GO  
SELECT object_id, type, type_desc, is_trigger_event, event_group_type, event_group_type_desc   
FROM sys.events  
WHERE object_id = OBJECT_ID('Person.iuPerson');   
GO  
USE AdventureWorks2022;   
GO   
SELECT object_id, type,is_first, is_last  
FROM sys.trigger_events  
WHERE object_id = OBJECT_ID('Person.iuPerson');   
GO  

Lásd még:

LÉTREHOZNI TRIGGERET (Transact-SQL)
EJTŐ TRIGGER (Transact-SQL)
TRIGGER ENGEDÉLYEZÉSE (Transact-SQL)
TRIGGER LETILTÁSA (Transact-SQL)
ESEMÉNYADATOK (Transact-SQL)
sp_rename (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modulok (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers (Transact-SQL)
sys.server_trigger_events (Transact-SQL)
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)
OBJEKTUMTULAJDONSÁG (Transact-SQL) )
OBJECT_DEFINITION (Transact-SQL)