Sql server SQL Server-视图-跟踪上次更改的时间和更改时间的用户

Sql server SQL Server-视图-跟踪上次更改的时间和更改时间的用户,sql-server,view,Sql Server,View,我想创建一个自定义表,我应该在其中存储视图的最后更改日期以及更改它的系统用户 视图的上次更新日期我可以使用此查询检索它: SELECT name, create_date, modify_date FROM sys.objects WHERE type = 'v' ORDER BY 3 DESC 但是,上表没有保存有关更改视图的用户的信息 在SQL中有什么方法可以做到这一点吗而不是触发器不是解决方案。对象审核在Enterprise Edition中可用 更便宜的选择-我认为有一些第三方产品也

我想创建一个自定义表,我应该在其中存储
视图
的最后更改日期以及更改它的
系统用户

视图的上次更新日期
我可以使用此查询检索它:

SELECT name, create_date, modify_date 
FROM sys.objects
WHERE type = 'v'
ORDER BY 3 DESC
但是,上表没有保存有关更改视图的用户的信息


在SQL中有什么方法可以做到这一点吗<代码>而不是触发器不是解决方案。

对象审核在Enterprise Edition中可用

更便宜的选择-我认为有一些第三方产品也可以做到这一点


除此之外,我认为没有办法。抱歉。

对象审核在企业版中可用

更便宜的选择-我认为有一些第三方产品也可以做到这一点


除此之外,我认为没有办法。抱歉。

我的第一个建议是使用版本控制来管理数据库,这样您就可以看到更多内容,而不仅仅是谁在何时更改了视图。您可以看到这些更改是什么,并假设他们正确使用软件进行更改的原因、它是什么功能的一部分等。如果不可能,Aaron Betrand在中描述了一个使用数据库触发器的非常好的解决方案,尽管不确定这是否是您所说的“
而不是
触发器不是解决方案”的意思@GarethD-因为
而不是
可以与
更新
插入
等一起使用,因此没有人会在该视图上进行更新或插入。您不会看到
而不是
触发器,因为它们与DML触发器相关。我的第一个建议是使用版本控制来管理您的数据库,这样您可以看到的不仅仅是谁更改了视图以及何时更改了视图。您可以看到这些更改是什么,并假设他们正确使用软件进行更改的原因、它是什么功能的一部分等。如果不可能,Aaron Betrand在中描述了一个使用数据库触发器的非常好的解决方案,尽管不确定这是否是您所说的“
而不是
触发器不是解决方案”的意思@GarethD-因为
而不是
可以与
更新
插入
等一起使用,因此没有人会在该视图上进行更新或插入。您不会看到
而不是
触发器,因为它们与DML触发器相关。如果您需要存储这样的信息,它将位于DDL触发器中。