在我的工作场所,我们有单独的Teradata数据库来管理表和视图。“表”数据库有带有数据的表,而“视图”数据库只有视图。对这两个数据库的访问由角色管理:“开发人员”有权在“表”中创建表,在“视图”中创建视图;“使用者”只能“读取”对“视图”数据库的访问。
随着时间的推移,一些视图已经变得“糟糕”,因为它们所引用的基表不再存在。这通常是当开发人员在某些分析结束时删除表而忘记删除相应的视图时造成的。
问题:是否有一种“简单”的方法来识别不再与有效表关联的视图?
我正在考虑编写一个测试脚本来在“视图”数据库中的每个视图上执行一个select count(*);如果测试失败,我就会知道视图有问题。我知道怎么做(而且会奏效),但我想我会问是否有更好的方法。
发布于 2013-05-14 16:52:44
我已经编写了一种方法,可以用来查找破碎的视图这里。通过使用存储过程、两个游标和PREPARE语句,您可以快速测试整个数据仓库中视图的有效性。
最大的窍门是将错误处理程序钉牢以记录错误。虽然我没有深入到我的网站上有关错误处理程序的细节,但是如果你被卡住了,我可以给你发送一些伪代码,让你走上正确的道路。
https://stackoverflow.com/questions/16545346
复制相似问题