Я создал триггер на уровне сервера для управления созданием базы данных.
У меня есть этот скрипт, который отлично работал на SQL 2014, теперь мы перешли на SQL 2017, сценарий работает, но я получаю много писем
CREATE TRIGGER [ddl_trig_database]
ON ALL SERVER
FOR ALTER_DATABASE
AS
DECLARE @results NVARCHAR(max)
DECLARE @subjectText NVARCHAR(max)
DECLARE @databaseName NVARCHAR(255)
SET @subjectText = 'NEW DATABASE Created on ' + @@SERVERNAME + ' by ' + SUSER_SNAME()
SET @results = (SELECT EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)'))
SET @databaseName = (SELECT EVENTDATA().value('(/EVENT_INSTANCE/DatabaseName)[1]', 'VARCHAR(255)'))
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'EmailProfile',
@recipients = 'test@domain.com',
@body = @results,
@subject = @subjectText,
@exclude_query_output = 1 --Suppress 'Mail Queued' message
GO
Я получаю, например, в разных письмах каждую из этих строк:
ALTER DATABASE [testNewDB] SET DELAYED_DURABILITY = DISABLED
ALTER DATABASE [testNewDB] SET RECOVERY FULL
ALTER DATABASE [testNewDB] SET READ_WRITE
ALTER DATABASE [testNewDB] SET READ_COMMITTED_SNAPSHOT OFF
Их больше, поэтому я считаю, что триггер отправляет информация для каждого параметра конфигурации созданной новой БД, есть идеи, как получить только информацию о новой БД, созданной без всего остального?