【发布时间】:2014-02-12 16:45:08
【问题描述】:
我想创建一个触发器,它通过电子邮件向我发送在服务器中创建的数据库的名称。每当创建数据库时,我都会收到一封电子邮件。请帮忙。
我尝试了以下代码只是为了返回一个打印语句,但这不起作用:
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
【问题讨论】:
-
你的触发器对我来说很好用。当然,在这个确切的脚本中,您要删除触发器(如果存在),然后创建触发器,然后再次删除它。下一个问题是如何让这个给你发送电子邮件; there are plenty of answers for that。如果您添加了尝试发送电子邮件的代码,但您无法使其正常工作,请返回此处询问有关该代码的具体问题。
标签: sql-server tsql triggers ddl-trigger