få oplysninger om DML Triggers

  • artikel
  • 12/17/2021
  • 4 minutter at læse
    • M
    • r
    • c
    • p
er denne side nyttig?

Tak.

gælder for: yes alle understøttede versioner) Ja database

dette emne beskriver, hvordan du får oplysninger om DML-udløsere i serverstyring ved hjælp af Studio eller Transact. Disse oplysninger kan omfatte typer af udløsere på en tabel, navnet på en trigger, dens ejer og den dato, den blev oprettet eller ændret. Hvis udløseren ikke blev krypteret, da den blev oprettet, får du definitionen af udløseren. Du kan bruge definitionen til at hjælpe dig med at forstå, hvordan en trigger påvirker tabellen op, som den er defineret. Du kan også finde ud af de objekter, som en bestemt trigger bruger. Med disse oplysninger kan du identificere de objekter, der påvirker udløseren, hvis de ændres eller slettes i databasen.

i dette emne

  • før du begynder:

    sikkerhed

  • for at få oplysninger om DML-udløsere ved hjælp af:

    Server Management Studio

før du begynder

sikkerhed

tilladelser

sys.SQL.moduler, sys.objekt, sys.udløser, sys.begivenheder, sys.trigger_events
synligheden af metadataene i katalogvisninger er begrænset til sikkerhedselementer, som en bruger enten ejer, eller som brugeren har fået tilladelse til. Du kan finde flere oplysninger i Konfiguration af Metadatasynlighed.

OBJECT_DEFINITION, OBJECTPROPERTY, sp_helptekst
kræver medlemskab i den offentlige rolle. Definitionen af brugerobjekter er synlig for objektejeren eller tilskudsmodtagerne, der har en af følgende tilladelser: ændre, kontrollere, tage ejerskab eller vis DEFINITION. Disse tilladelser er implicit indehaves af medlemmer af db_ejer, db_ddladmin, og db_securityadmin faste database roller.

sys.8040 > kræver vis DEFINITION tilladelse på databasen og vælg tilladelse på sys.for databasen. Som standard, Vælg tilladelse gives kun til medlemmer af db_ejer fast database rolle. Når Vælg og vis DEFINITIONSTILLADELSER tildeles en anden bruger, kan modtageren se alle afhængigheder i databasen.

brug af Server Management Studio

for at se definitionen af en DML-trigger

  1. i Objektstifinder skal du oprette forbindelse til en forekomst af databasemotor og derefter udvide den forekomst.

  2. Udvid den ønskede database, Udvid tabeller, og udvid derefter den tabel, der indeholder den trigger, som du vil have vist definitionen for.

  3. Udvid udløsere, Højreklik på den ønskede trigger, og klik derefter på Rediger. Definitionen af DML-udløseren vises i forespørgselsvinduet.

for at se afhængighederne af en DML-trigger

  1. i Objektstifinder skal du oprette forbindelse til en forekomst af databasemotor og derefter udvide den forekomst.

  2. Udvid den ønskede database, Udvid tabeller, og udvid derefter den tabel, der indeholder udløseren og dens afhængigheder, som du vil have vist.

  3. Udvid udløsere, Højreklik på den ønskede trigger, og klik derefter på Vis afhængigheder.

  4. i vinduet Objektafhængigheder skal du vælge objekter, der afhænger af DML-udløseren, for at få vist de objekter, der afhænger af <DML-udløsernavn>. Objekterne vises i området afhængigheder.

    for at se de objekter, som DML afhænger af, skal du vælge objekter, som < DML trigger name> afhænger af. Objekterne vises i området afhængigheder. Udvid hver node for at se alle objekterne.

  5. klik på objektet for at få oplysninger om et objekt, der vises i området afhængigheder. I feltet markeret objekt angives oplysninger i felterne Navn, Type og Afhængighedstype.

  6. klik på OK for at lukke vinduet Objektafhængigheder.

brug af Transact-KVL

for at se definitionen af en DML-trigger

  1. Opret forbindelse til databasemotoren.

  2. Klik på ny forespørgsel på Standardlinjen.

  3. Kopier og indsæt et af følgende eksempler i forespørgselsvinduet, og klik på Udfør. Hvert eksempel viser, hvordan du kan se definitionen af iuPerson udløseren.

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 

for at se afhængighederne af en DML-trigger

  1. Opret forbindelse til databasemotoren.

  2. Klik på ny forespørgsel på Standardlinjen.

  3. Kopier og indsæt et af følgende eksempler i forespørgselsvinduet, og klik på Udfør. Hvert eksempel viser, hvordan du kan se afhængighederne af iuPerson trigger.

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 

Sådan får du vist oplysninger om DML-udløsere i databasen

  1. Opret forbindelse til databasemotoren.

  2. Klik på ny forespørgsel på Standardlinjen.

  3. Kopier og indsæt et af følgende eksempler i forespørgselsvinduet, og klik på Udfør. Hvert eksempel viser, hvordan du kan se oplysninger om DML-udløsere (TR) i databasen.

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 

for at se oplysninger om begivenheder, der affyrer en DML-trigger

  1. Opret forbindelse til databasemotoren.

  2. Klik på ny forespørgsel på Standardlinjen.

  3. Kopier og indsæt et af følgende eksempler i forespørgselsvinduet, og klik på Udfør. Hvert eksempel viser, hvordan du kan se de hændelser, der udløser iuPerson – udløseren.

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 

Se også

Opret TRIGGER (Transact-KVL)
DROP TRIGGER (Transact-KVL)
aktiver TRIGGER (Transact-KVL)
Deaktiver TRIGGER (Transact-KVL)
EVENTDATA (Transact-KVL)
sp_rename (Transact-KVL)
ALTER TRIGGER (Transact-KVL)
sp_help (transact-KVL)
SP_HELPTRIGGER (transact-KVL)
sys.udløsere (Transact)
sys.trigger_events (Transact)
sys.(Transact)
sys.assembly_modules (Transact)
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)

Write a Comment

Din e-mailadresse vil ikke blive publiceret.