【发布时间】:2009-08-24 17:01:52
【问题描述】:
我的名字是 Tayyeb,我最近完成了 SQL Server 2005 课程。我目前是一名 Windows 系统管理员。
我是数据库的新手,我的问题是我们有一个数据库,如果表得到更新,那么我想收到一封电子邮件,说明更新了什么。
谁能帮我解决这个问题?
提前致谢
【问题讨论】:
标签: sql-server triggers
我的名字是 Tayyeb,我最近完成了 SQL Server 2005 课程。我目前是一名 Windows 系统管理员。
我是数据库的新手,我的问题是我们有一个数据库,如果表得到更新,那么我想收到一封电子邮件,说明更新了什么。
谁能帮我解决这个问题?
提前致谢
【问题讨论】:
标签: sql-server triggers
您可能想在桌子上设置insert and update triggers 并让他们调用msdb.dbo.sp_send_dbmail stored procedure.
【讨论】:
创建一个表,用于存储该特定表中上次更新的日期时间。
为您的表设置一个触发器,在更新时更新日期时间。
让外部应用程序定期轮询日期时间,如果更改,请发送电子邮件。
【讨论】:
使用触发器是给定的。无论是 DBMail 解决方案还是轮询过程,都可以使用。如果您使用轮询过程,请继续并在轮询过程运行时将轮询间隔设置为可以更改的值(如果可能)。您将遇到的问题是,如果您想测试或调试它,您将不想等待完整的轮询间隔。如果间隔是 5 分钟,您要么必须重新启动轮询器,要么有一个单独的轮询间隔来检查轮询间隔是否改变(我们可以说是递归的吗?)。所以在编写轮询器时要考虑到调试/测试。
这可能足以说服您使用 DBMail 解决方案。我从来没有使用过它,所以其他人不得不谈论它。
【讨论】: