SQL Server - VIEWS - 跟踪上次更改时间和更改时间的用户
Posted
技术标签:
【中文标题】SQL Server - VIEWS - 跟踪上次更改时间和更改时间的用户【英文标题】:SQL Server - VIEWS - keep track of last altered time and the user that altered it 【发布时间】:2019-05-21 13:59:10 【问题描述】:我想创建一个自定义表,我应该在其中存储 VIEW
的最后更改日期和更改它的 SYSTEM_USER
。
VIEW
的最后更新日期我可以使用这个查询来检索它:
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'v'
ORDER BY 3 DESC
但是,上表没有保留有关更改视图的用户的信息。
有没有办法在 SQL 中做到这一点? INSTEAD OF
triggers 不是解决方案。
【问题讨论】:
我的第一个建议是使用版本控制来管理您的数据库,然后您可以看到的不仅仅是谁更改了视图以及何时更改了视图。您可以看到更改是什么,并假设他们正确使用了该软件,为什么进行更改,它是什么功能的一部分等。如果这不可能,Aaron Betrand 在this article 中描述了一个使用数据库触发器的非常好的解决方案,虽然不确定这是否是您所说的“INSTEAD OF
触发器不是解决方案”
Bad habits to kick : ORDER BY ordinal
@GarethD - 因为INSTEAD OF
可以与UPDATE
、INSERT
等一起使用,并且没有人会对此视图进行更新或插入。
您不会看到 INSTEAD OF
触发器,因为它们与 DML 触发器有关。如果您需要存储此类信息,它将位于 DDL 触发器中。
【参考方案1】:
企业版提供对象审计。
更便宜的选择 - 我认为有一些第三方产品也可以做到这一点。
上述内容不足,我不相信有办法。对不起。
【讨论】:
以上是关于SQL Server - VIEWS - 跟踪上次更改时间和更改时间的用户的主要内容,如果未能解决你的问题,请参考以下文章