Сценарий ниже, я получил список таблиц, которые необходимо обновить статистику.
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;
Но он возвращает ошибку о том, что Table 'dbo.LoginHistory' не существует.
Когда я выполняю SELECT * FROM dbo.LoginHistory, он возвращает данные (что означает, что таблица существует).
Есть идеи, почему я вижу ошибку при запуске статистики?