SQL Сервер DDL Trigger не может перехватить событие ОТКЛЮЧИТЬ ВСЕ - PullRequest
0 голосов
/ 23 марта 2020

Я внезапно осознал, что не могу регистрировать изменения схемы, вызванные такими событиями, как DISABLE TRIGGER ALL ON имя таблицы;

Я проверил эту страницу, но не смог найти решение: https://docs.microsoft.com/en-us/sql/relational-databases/triggers/ddl-events?view=sql-server-ver15

Мне нужно регистрировать каждое утверждение, которое изменяет структуру базы данных. Можете ли вы мне что-нибудь подсказать?

Вы можете легко воспроизвести эту проблему, запустив этот пример сценария:

CREATE DATABASE [DDLTEST]
GO
USE DDLTEST
GO
CREATE TRIGGER [TRG_OGUZ_SCHEMALOG]
ON DATABASE FOR
    DDL_DATABASE_LEVEL_EVENTS
AS
    PRINT 'DDL EVENT FIRED !!'
GO
--THIS PRINTS 'DDL EVENT FIRED !!'
CREATE TABLE X(ID INT)
GO
--THIS PRINTS 'DDL EVENT FIRED !!'
CREATE TRIGGER TRG_X ON X AFTER INSERT 
AS
PRINT 'INSERT EVENT !!'
GO
--UNFORTUNATELY THIS DOES NOT PRINT 'DDL EVENT FIRED !!'
DISABLE TRIGGER ALL ON X
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...