UPDATE STATISTICS返回错误“表不存在”。在SQL Server中

时间:2018-10-31 06:28:46

标签: sql-server statistics

从下面的脚本中,我获得了需要更新统计信息的表的列表。

SELECT [sch].[name] + '.' + [so].[name] AS [TableName] ,
[ss].[name] AS [Statistic],
[sp].[last_updated] AS [StatsLastUpdated] ,
[sp].[rows] AS [RowsInTable] ,
[sp].[rows_sampled] AS [RowsSampled] ,
[sp].[modification_counter] AS [RowModifications]
FROM [sys].[stats] [ss]
JOIN [sys].[objects] [so] ON [ss].[object_id] = [so].[object_id]
JOIN [sys].[schemas] [sch] ON [so].[schema_id] = [sch].[schema_id]
OUTER APPLY [sys].[dm_db_stats_properties]([so].[object_id],
[ss].[stats_id]) sp
WHERE [so].[type] = 'U'
AND [sp].[modification_counter] > 0

上面的查询返回结果表“ dbo.LoginHistory”。

要执行统计信息更新,我已在查询中执行以下操作。

UPDATE STATISTICS [dbo.LoginHistory] WITH FULLSCAN;

但是它返回一个错误,表明表'dbo.LoginHistory'不存在。

当我执行SELECT * FROM dbo.LoginHistory时,它将返回数据(这意味着该表存在)。

您知道为什么我在运行统计信息时会看到错误吗?

1 个答案:

答案 0 :(得分:0)

删除方括号[]。 使用dbo.LoginHistory代替[dbo.LoginHistory] ​​

UPDATE STATISTICS dbo.LoginHistory WITH FULLSCAN;