对于我们支持的一个应用程序,我们有一个周二/周四维护窗口。周二我们会修改一个设施,周四如果没有错误,我们会将所有更改推广到其他设施。该应用程序是 3ed 方,有时会更改数据库,从而在我们的应用程序“报告”服务器上呈现无效视图。
有没有办法可以使用 TSQL 滚动查看报表服务器上的所有视图(大约有 70 个)以在星期二分解后找到绑定错误?
我想找到的错误是:
以用户身份执行:<>。无法准备报表。[SQLSTATE 42000](错误 8180)由于绑定错误,无法使用视图或函数“PAT.dbo.Reorders”。[SQLSTATE 42000](错误 4413)使用 UNION、INTERSECT 或 EXCEPT 运算符组合的所有查询必须在其目标列表中具有相等数量的表达式。[SQLSTATE 42000](错误 205)。步骤失败。
有没有办法以编程方式执行此操作,还是我只需要继续右键单击每个视图并尝试查看它是否返回数据?
谢谢,
以下内容应该足以让您入门。它也应该非常轻巧。
您可以为数据库中的所有视图生成
SELECT
语句并运行结果:SELECT 'SELECT * FROM dbo.' + name from sys.sysobjects WHERE type = 'V'
哪个应该返回
对于当前数据库中的所有视图。根据需要为不同的模式或列进行自定义,
SELECT
以避免返回大量数据集。