2

在我的工作场所,我们有单独的 Teradata 数据库来管理表和视图。“tables”数据库包含带有数据的表,而“views”数据库只有视图。对两个数据库的访问由角色管理:“开发者”有权限在“表”中创建表,在“视图”中创建视图;“消费者”对“视图”数据库只有“读取”权限。

随着时间的推移,一些视图变得“不好”,因为它们引用的基表不再存在。这通常是由于开发人员在某些分析结束时删除了表并忘记删除相应的视图时造成的。

问题:是否有一种“简单”的方法来识别不再与有效表关联的视图?

我正在考虑编写一个测试脚本来select count(*)对“视图”数据库中的每个视图执行一个;如果测试失败,我会知道视图有问题。我知道如何做到这一点(它会起作用),但我想我会问是否有更好的方法。

4

1 回答 1

2

我已经编写了一种方法,可用于在此处查找损坏的视图。通过使用存储过程、几个游标和PREPARE语句,您可以快速测试整个数据仓库中视图的有效性。

最大的技巧是确定错误处理程序以记录您的错误。虽然我没有在我的网站上详细介绍错误处理程序,但如果您遇到困难,我可以向您发送一些伪代码以走上正确的道路。

于 2013-05-14T16:52:44.663 回答