Teradata 有没有一种方法可以使用DBC视图来查找数据库架构更改的最后日期和时间?

Teradata 有没有一种方法可以使用DBC视图来查找数据库架构更改的最后日期和时间?,teradata,Teradata,我想找出在特定数据库上进行任何模式修改的日期和时间。修改是指已创建、更改或删除的表或列。它不包括任何已插入、更新或删除的数据 我之所以需要它,是因为我正在编写一个.NET实用程序,它严重依赖于从dbc.tables、dbc.columns和dbc.index返回的数据。由于查询这些视图可能是一项非常昂贵的操作,因此我希望将其全部读取到自定义业务对象中,然后将这些对象序列化为存储在磁盘上的XML文件。这样,我可以在需要时反序列化数据,除非数据库的当前时间戳大于或等于上次架构更改的日期时间,此时,我

我想找出在特定数据库上进行任何模式修改的日期和时间。修改是指已创建、更改或删除的表或列。它不包括任何已插入、更新或删除的数据


我之所以需要它,是因为我正在编写一个.NET实用程序,它严重依赖于从
dbc.tables
dbc.columns
dbc.index
返回的数据。由于查询这些视图可能是一项非常昂贵的操作,因此我希望将其全部读取到自定义业务对象中,然后将这些对象序列化为存储在磁盘上的XML文件。这样,我可以在需要时反序列化数据,除非数据库的当前时间戳大于或等于上次架构更改的日期时间,此时,我将使用更新的架构刷新本地XML文件。

LastAlterTimestamp
-如果它等于
CreateTimestamp
,则对象自创建或替换以来未被修改。它在特定于该数据字典对象的属性更新时更新


例如,添加、删除或更改子对象(表、视图、宏、存储过程、函数等)时,DBC.Databases.LastAlterTimestamp不会更新。在密码、默认角色、配置文件或帐户发生更改等情况下,会对其进行更新

我刚刚确认,添加表、更改列甚至索引都会更改最大值(LastAlterTimestamp)。但是,删除表似乎会通过返回对象的LastAlterTimestamp值来影响聚合,该对象具有刚刚删除的表的下一个最高LastAlterTimestamp。我检查了dbc.databases的LastAlterTimestamp,但在删除表时它似乎没有改变。有什么想法吗?我想我可以将LastAlterTimestamp存储到一个文件中,然后检查该值是否已更改,而不是执行大于/等于检查。不过,我想知道为什么LastAlterTimestamp会受到这种影响。为LastAlterTimestamp的范围添加了额外的说明。谢谢。关于删除表时dbc.tables的LastAlterTimestamp值的聚合,您对我的回答有何评论?删除表时dbc.Databases.LastAlterTimestamp不会更改。删除表时,最大值(DBC.TVM.LastAlterTimestamp)可能会更改。删除表格时,DBC.TVM中的行将被删除。因此,如果删除的表是最后一次更改的表,则将有一个新的最后一次更改的表。