Wednesday, January 25, 2012

Trigger on all server

alter TRIGGER [trgDatabaseCreated]
ON ALL SERVER
with execute as 'sa'
FOR CREATE_DATABASE

AS
declare @data XML
declare @message XML

SET @data=EVENTDATA()



declare @msg as nvarchar(max)
set @msg = 'Databasecreated' + @data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)') + @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(2000)')

INSERT INTO [InterneVerwaltung].[dbo].[AllgLog] ([name],[description],xmldesc)
VALUES ('trgDatabaseCreated',@msg,@data)

--INSERT INTO InterneVerwaltung.dbo.AllgLog
--(DB_User,Event,TSQL)
--VALUES
--(GETDATE(),
--CONVERT(nvarchar(100),CURRENT_USER),
--@data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)'),
--@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(2000)'))

exec msdb.dbo.sysmail_start_sp

Execute msdb.dbo.sp_send_dbmail
@profile_name='sqlcl1DbMail',
@recipients='erich.geierlehner@ecs.steyr.com',
@subject='databasewascreated',
@body=@msg,
@query='select top 1 * from [InterneVerwaltung].[dbo].[AllgLog] with (NOLOCK) order by created DESC';

No comments: