我想找到在特定数据库上进行任何架构修改的日期和时间。修改类似于已创建,更改或删除的表或列。它不包括已插入,更新或删除的任何数据。
我之所以需要这个,是因为我编写的.NET实用程序在很大程度上取决于dbc.tables
,dbc.columns
和dbc.indices
返回的数据。由于查询这些视图可能是一项非常昂贵的操作,因此我想将其全部读入自定义业务对象,然后将对象序列化为存储在磁盘上的XML文件。这样,我可以在需要时反序列化数据,除非数据库的current_timestamp大于或等于最后一次模式更改的日期时间,此时我将使用更新的模式刷新本地XML文件。
答案 0 :(得分:2)
LastAlterTimestamp
- 如果它等于CreateTimestamp
,则对象自创建或替换后未被修改。当更新特定于该数据字典对象的属性时,它会更新。
例如,添加,删除或更改子对象(表,视图,宏,存储过程,函数等)时,不会更新DBC.Databases.LastAlterTimestamp。它会在密码,默认角色,配置文件或帐户更改等情况下更新。