Я хочу создать триггер, который отправляет мне имя базы данных, созданной на сервере. Всякий раз, когда создается БД, я должен получить электронное письмо. Пожалуйста помоги.DDL Trigger с примером
Я попытался следующий код просто возвращает оператор печати, но это не работает:
IF EXISTS (SELECT * FROM sys.server_triggers
WHERE name = 'ddl_trig_database')
DROP TRIGGER ddl_trig_database
ON ALL SERVER;
GO
CREATE TRIGGER ddl_trig_database
ON ALL SERVER
FOR CREATE_DATABASE
AS
PRINT 'Database Created.'
SELECT EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)')
GO
DROP TRIGGER ddl_trig_database
ON ALL SERVER;
GO
Ваш триггер отлично работает для меня. Конечно, в этом точном скрипте вы бросаете триггер (если он существует), а затем создаете триггер, а затем снова возвращаете его. Следующий вопрос: как получить это, чтобы отправить вам электронное письмо; [для этого есть много ответов] (http://stackoverflow.com/search?tab=votes&q=%5bsql-server%5d%20send%20e-mail). Если вы добавите код, который пытается отправить электронное письмо, и вы не можете заставить его работать, вернитесь сюда с конкретными вопросами об этом коде. –