- jogcímcsoport
- 12/17/2021
- 4 perc olvasni
-
- M
- r
- c
- p
vonatkozik: SQL Server (az összes támogatott verzió) Azure SQL Database
ez a témakör azt ismerteti, hogyan szerezhet információt az SQL Server DML-eseményindítóiról az SQL Server Management Studio vagy a Transact-SQL használatával. Ez az információ magában foglalhatja az eseményindítók típusát egy táblán, az eseményindító nevét, tulajdonosát, valamint a létrehozás vagy módosítás dátumát. Ha a trigger nem volt titkosítva a létrehozásakor, akkor megkapja a trigger meghatározását. A definíció segítségével megértheti, hogy egy trigger hogyan befolyásolja azt a táblázatot, amelyen meg van határozva. Megtudhatja azokat az objektumokat is, amelyeket egy adott trigger használ. Ezzel az információval azonosíthatja azokat az objektumokat, amelyek befolyásolják a triggert, ha azokat megváltoztatják vagy törlik az adatbázisban.
ebben a témában
-
mielőtt elkezdené:
biztonság
-
ahhoz, hogy információt DML kiváltó, segítségével:
SQL Server Management Studio
Transact-SQL
- Mielőtt elkezdené
- biztonság
- engedélyek
- az SQL Server Management Studio használata
- a DML trigger definíciójának megtekintéséhez
- a DML trigger függőségeinek megtekintése
- a Transact-SQL
- használata a DML trigger definíciójának megtekintéséhez
- a DML trigger függőségeinek megtekintése
- a DML-eseményindítókkal kapcsolatos információk megtekintése az adatbázisban
- DML-triggert kiváltó eseményekkel kapcsolatos információk megtekintése
- Lásd még:
Mielőtt elkezdené
biztonság
engedélyek
sys.sql.modulok, sys.tárgy, sys.triggerek, sys.események, sys.trigger_events
a metaadatok katalógusnézetekben való láthatósága azokra a biztonsági elemekre korlátozódik, amelyek a felhasználó tulajdonában vannak, vagy amelyekre a felhasználó engedélyt kapott. További információ: metaadatok láthatóságának konfigurálása.
OBJECT_DEFINITION, OBJECTPROPERTY, sp_helptext
nyilvános szerepkörben való tagságot igényel. A felhasználói objektumok definíciója látható az objektum tulajdonosa vagy kedvezményezettjei számára, akik a következő engedélyek bármelyikével rendelkeznek: 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
NÉZETDEFINÍCIÓS engedélyt igényel az adatbázisban, majd válassza a sys engedélyét.sql_expression_dependencies az adatbázishoz. Alapértelmezés szerint a SELECT engedélyt csak a db_owner rögzített adatbázis szerepkör tagjai kapják meg. Ha a kijelölés és a nézet definíciós engedélyeket egy másik felhasználó kapja meg, a kedvezményezett megtekintheti az adatbázis összes függőségét.
az SQL Server Management Studio használata
a DML trigger definíciójának megtekintéséhez
-
az Object Explorerben csatlakozzon az adatbázismotor egy példányához, majd bontsa ki azt a példányt.
-
bontsa ki a kívánt adatbázist, bontsa ki a táblázatokat, majd bontsa ki azt a táblát, amely tartalmazza azt az indítót, amelynek a definícióját meg szeretné tekinteni.
-
bontsa ki az Eseményindítók elemet, kattintson a jobb gombbal a kívánt eseményindítóra, majd kattintson a Módosítás parancsra. A DML trigger meghatározása megjelenik a lekérdezési ablakban.
a DML trigger függőségeinek megtekintése
-
az Object Explorerben csatlakozzon az adatbázismotor egy példányához, majd bontsa ki azt a példányt.
-
bontsa ki a kívánt adatbázist, bontsa ki a táblázatokat, majd bontsa ki az indítót és a megtekinteni kívánt függőségeket tartalmazó táblát.
-
bontsa ki az Eseményindítók elemet, kattintson a jobb gombbal a kívánt eseményindítóra, majd kattintson a függőségek megtekintése parancsra.
-
az Objektumfüggőségek ablakban a DML-triggertől függő objektumok megtekintéséhez jelölje ki a <DML-trigger neve>objektumtól függő objektumokat. Az objektumok a függőségek területen jelennek meg.
azon objektumok megtekintéséhez, amelyektől a DML függ, jelölje ki azokat az objektumokat, amelyektől a < DML trigger 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.
-
ha információt szeretne kapni a függőségek területen megjelenő objektumról, kattintson az objektumra. A kijelölt objektum mezőben az információk a név, típus és függőség típusa mezőben jelennek meg.
-
az Objektumfüggőségek ablak bezárásához kattintson az OK gombra.
a Transact-SQL
használata a DML trigger definíciójának megtekintéséhez
-
csatlakozzon az adatbázis-motorhoz.
-
a normál sávon kattintson az Új lekérdezés elemre.
-
másolja és illessze be az alábbi példák egyikét a lekérdezési ablakba, majd kattintson a Végrehajtás gombra. Minden példa bemutatja, hogyan tekintheti meg a
iuPerson
trigger definícióját.
USE AdventureWorks2012; GO SELECT definition FROM sys.sql_modules WHERE object_id = OBJECT_ID(N'Person.iuPerson'); GO
USE AdventureWorks2012; GO SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.iuPerson')) AS ObjectDefinition; GO
USE AdventureWorks2012; GO EXEC sp_helptext 'Person.iuPerson' GO
a DML trigger függőségeinek megtekintése
-
csatlakozzon az adatbázis-motorhoz.
-
a normál sávon kattintson az Új lekérdezés elemre.
-
másolja és illessze be az alábbi példák egyikét a lekérdezési ablakba, majd kattintson a Végrehajtás gombra. Minden példa bemutatja, hogyan tekintheti meg a
iuPerson
trigger függőségeit.
USE AdventureWorks2012; GO SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name, o.type_desc AS referencing_desciption, 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
a DML-eseményindítókkal kapcsolatos információk megtekintése az adatbázisban
-
csatlakozzon az adatbázis-motorhoz.
-
a normál sávon kattintson az Új lekérdezés elemre.
-
másolja és illessze be az alábbi példák egyikét a lekérdezési ablakba, majd kattintson a Végrehajtás gombra. Minden példa bemutatja, hogyan tekintheti meg a DML-eseményindítókkal (
TR
) kapcsolatos információkat az adatbázisban.
USE AdventureWorks2012; GO SELECT name, parent_id, create_date, modify_date, is_instead_of_trigger FROM sys.triggers WHERE type = 'TR'; GO
USE AdventureWorks2012; 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 AdventureWorks2012; GO SELECT OBJECTPROPERTY(OBJECT_ID(N'Person.iuPerson'), 'ExecIsInsteadOfTrigger'); GO
DML-triggert kiváltó eseményekkel kapcsolatos információk megtekintése
-
csatlakozzon az adatbázis-motorhoz.
-
a normál sávon kattintson az Új lekérdezés elemre.
-
másolja és illessze be az alábbi példák egyikét a lekérdezési ablakba, majd kattintson a Végrehajtás gombra. Minden példa bemutatja, hogyan tekintheti meg az
iuPerson
triggert kiváltó eseményeket.
USE AdventureWorks2012; 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 AdventureWorks2012; 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:
TRIGGER létrehozása (Transact-SQL)
DROP TRIGGER (Transact-SQL)
TRIGGER engedélyezése (Transact-SQL)
eseményadatok letiltása (Transact-SQL)
sp_rename (Transact-SQL)
Alter TRIGGER (Transact-SQL)
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
SYS.triggerek (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (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)
OBJECTPROPERTY (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL)