2013-07-18 37 views
1

我有一个字典,它包含我的数据库中更新的表和字段,我保留 来构建查询和其他内容。SQL服务器作业来跟踪数据库更改

我想在每次创建或更改表时刷新此字典。

我的解决方案是创建一个sql作业,该作业更新一个具有布尔值的表,每个更改都有一个叫做 的IsDBDictionaryUpdated。

如何通过跳转每个数据库结构更改的常规触发器来激活此作业?

回答

0

最简单的事情就是创建一个DDL触发器,当表被修改或创建时触发。然后,使用exec语句,您可以执行想要更新字典的作业。

CREATE TRIGGER safety 
ON DATABASE 
FOR CREATE_TABLE, DROP_TABLE, ALTER_TABLE 

AS 
    EXEC msdb..sp_start_job 
     @job_name = 'JobName'; 
GO 

这里是给MS文章的链接: http://msdn.microsoft.com/en-us/library/ms175941.aspx

+0

谢谢! 其实我认为我可以传递工作,只使用触发器,因为我只需要更新表中的一个字段值。 – FelProNet

+0

听起来像一个计划。 DDL触发是关键。 – Brian