我目前正在编写一个 TSQL 脚本,其中部分脚本会刷新数据库中的所有视图。在网上找到这个示例后,我正在遍历集合,但在刷新其中一个视图(不是第一个视图)时遇到了一个奇怪的问题。
在运行以下查询时,我从 sysobjects 表中得到结果
SELECT * FROM sysobjects WHERE type = 'V' AND name = 'vwEnginesFinishBuiltToday'
然后运行刷新我得到一个异常
exec sp_refreshview N'dbo.vwEnginesFinishBuiltToday'
现在奇怪的是错误告诉我找不到具有不同名称的视图。确实它不存在于数据库中,因此认为dbo.vwEnginesFinishBuiltToday
在内部使用另一个视图,我查看了该视图的 TSQL。
SELECT COUNT(dbo.tblBatches.IdBatch) AS TotalEnginesFinishedToday
FROM dbo.tblBatches INNER JOIN
dbo.tblEngines ON dbo.tblBatches.IdBatch = dbo.tblEngines.idBatch
WHERE (YEAR(dbo.tblEngines.DateFinished) = YEAR(GETDATE())) AND (MONTH(dbo.tblEngines.DateFinished) = MONTH(GETDATE())) AND (DAY(dbo.tblEngines.DateFinished)
= DAY(GETDATE()))
嗯,没有提到dbo.vwEnginesFinishedToday
那里的景色。不,我正在努力寻找问题。
SQL Server中的方法有问题sp_refreshsqlmodule_internal
还是我遗漏了一些明显的东西?