Hämta information om DML-utlösare
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Det här avsnittet beskriver hur du hämtar information om DML-utlösare i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL. Den här informationen kan omfatta typer av utlösare i en tabell, namnet på en utlösare, dess ägare och det datum då den skapades eller ändrades. Om utlösaren inte krypterades när den skapades får du definitionen av utlösaren. Du kan använda definitionen för att förstå hur en utlösare påverkar tabellen som den definieras för. Du kan också ta reda på vilka objekt som en specifik utlösare använder. Med den här informationen kan du identifiera de objekt som påverkar utlösaren om de ändras eller tas bort i databasen.
i det här avsnittet
Innan du börjar:
För att få information om DML-utlösare använder du:
Innan du börjar
Säkerhet
Behörigheter
sys.sql.modules, sys.object, sys.triggers, sys.events, sys.trigger_events
Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. För mer information, se inställningar för metadatasynlighet.
OBJECT_DEFINITION, OBJECTPROPERTY, sp_helptext
Kräver medlemskap i offentlig roll. Definitionen av användarobjekt är synlig för objektägaren eller beviljare som har någon av följande behörigheter: ALTER, CONTROL, TAKE OWNERSHIP eller VIEW DEFINITION. Dessa behörigheter innehas implicit av medlemmar i db_owner, db_ddladminoch db_securityadmin fasta databasroller.
sys.sql_expression_dependencies
Kräver VIEW DEFINITION-behörighet för databasen och SELECT-behörighet på sys.sql_expression_dependencies för databasen. Som standard beviljas SELECT-behörighet endast till medlemmar i den db_owner fasta databasrollen. När behörigheterna SELECT och VIEW DEFINITION beviljas till en annan användare kan den beviljade användaren visa alla beroenden i databasen.
Använda SQL Server Management Studio
För att visa definitionen av en DML-utlösare
I Object Exploreransluter du till en instans av databasmotorn och expanderar sedan den instansen.
Expandera den databas som du vill använda, expandera Tabelleroch expandera sedan tabellen som innehåller utlösaren som du vill visa definitionen för.
Expandera Utlösare, högerklicka på den utlösare du vill, och klicka sedan på Ändra. Definitionen av DML-utlösaren visas i frågefönstret.
Visa beroenden för en DML-utlösare
I Object Exploreransluter du till en instans av databasmotorn och expanderar sedan den instansen.
Expandera den databas som du vill använda, expandera Tabelleroch expandera sedan tabellen som innehåller utlösaren och dess beroenden som du vill visa.
Expandera Utlösare, högerklicka på den utlösare du vill och klicka sedan på Visa beroenden.
I fönstret Object Dependencies väljer du Objekt som är beroende av <DML-utlösarnamn>om du vill visa de objekt som är beroende av DML-utlösaren. Objekten visas i området Beroenden.
Om du vill visa de objekt som DML är beroende av väljer du Objekt som <DML-utlösarnamn> beror på. Objekten visas i området Beroenden. Expandera varje nod för att se alla objekt.
Om du vill hämta information om ett objekt som visas i området Beroenden klickar du på objektet. I fältet Markerat objekt finns information i rutorna Namn, Typoch Beroendetyp.
Om du vill stänga fönstret objektberoenden klickar du på OK.
Använda Transact-SQL
För att visa definitionen av en DML-utlösare
Anslut till databasmotorn.
I standardfältet klickar du på Ny fråga.
Kopiera och klistra in något av följande exempel i frågefönstret och klicka på Kör. Varje exempel visar hur du kan visa definitionen av
iuPerson
-triggern.
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
Visa beroendena av en DML-utlösare
Anslut till databasmotorn.
I standardfältet klickar du på Ny fråga.
Kopiera och klistra in något av följande exempel i frågefönstret och klicka på Kör. Varje exempel visar hur du kan visa beroenden för
iuPerson
utlösare.
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
Visa information om DML-utlösare i databasen
Anslut till databasmotorn.
I standardfältet klickar du på Ny fråga.
Kopiera och klistra in något av följande exempel i frågefönstret och klicka på Kör. Varje exempel visar hur du kan visa information om DML-utlösare (
TR
) i databasen.
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
Visa information om händelser som utlöser en DML-utlösare
Anslut till databasmotorn.
I standardfältet klickar du på Ny fråga.
Kopiera och klistra in något av följande exempel i frågefönstret och klicka på Kör. Varje exempel visar hur du kan se de händelser som utlöser
iuPerson
trigger.
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
Se även
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
AKTIVERA UTLÖSARE (Transact-SQL)
INAKTIVERA UTLÖSARE (Transact-SQL)
EVENTDATA (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_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)