No SQL Server, você pode usar as seguintes consultas T-SQL para retornar uma lista hierárquica de tipos de eventos de gatilho.
Esses exemplos consultam os
sys.trigger_event_types
view, que retorna uma linha para cada evento ou grupo de eventos no qual um gatilho pode ser acionado. Exemplo 1 – Retornar todas as linhas
Esta consulta retorna todas as linhas no
sys.trigger_event_types
visualizar. WITH event_types(Type, Type_Name, Parent_Type, Level, Sort) AS ( SELECT tet.type, tet.type_name, tet.parent_type, 1 AS Level, CONVERT(nvarchar(255), tet.type_name) FROM sys.trigger_event_types tet WHERE parent_type IS NULL UNION ALL SELECT tet.type, CONVERT(nvarchar(64), REPLICATE('| ' , Level) + tet.type_name), tet.parent_type, Level + 1, CONVERT(nvarchar(255), RTRIM(Sort) + ' > ' + tet.type_name) FROM sys.trigger_event_types AS tet INNER JOIN event_types AS et ON et.type = tet.parent_type ) SELECT Type_Name FROM event_types ORDER BY Sort;
Essa consulta retorna 284 linhas em meu ambiente SQL Server 2017 e 291 linhas em meu ambiente SQL Server 2019.
Exemplo 2 – Retornar um único tipo de evento
Você pode modificar a consulta anterior para que ela retorne um tipo de evento específico, listado no estilo breadcrumb.
Aqui está um exemplo de como retornar o
CREATE_TABLE
tipo de evento no estilo breadcrumb:WITH event_types(Type, Type_Name, Parent_Type, Level, Sort) AS ( SELECT tet.type, tet.type_name, tet.parent_type, 1 AS Level, CONVERT(nvarchar(255), tet.type_name) FROM sys.trigger_event_types tet WHERE parent_type IS NULL UNION ALL SELECT tet.type, CONVERT(nvarchar(64), REPLICATE('| ' , Level) + tet.type_name), tet.parent_type, Level + 1, CONVERT(nvarchar(255), RTRIM(Sort) + ' > ' + tet.type_name) FROM sys.trigger_event_types AS tet INNER JOIN event_types AS et ON et.type = tet.parent_type ) SELECT Sort AS [Result] FROM event_types WHERE RIGHT(Sort, 12) = 'CREATE_TABLE';
Resultado:
+--------------------------------------------------------------------------------------------------+ | Result | |--------------------------------------------------------------------------------------------------| | DDL_EVENTS > DDL_DATABASE_LEVEL_EVENTS > DDL_TABLE_VIEW_EVENTS > DDL_TABLE_EVENTS > CREATE_TABLE | +--------------------------------------------------------------------------------------------------+