UPDATE STATISTICS возвращает ошибку «Таблица не существует». в SQL Server - PullRequest
0 голосов
/ 31 октября 2018

Сценарий ниже, я получил список таблиц, которые необходимо обновить статистику.

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, он возвращает данные (что означает, что таблица существует).

Есть идеи, почему я вижу ошибку при запуске статистики?

1 Ответ

0 голосов
/ 31 октября 2018

Снять скобки []. Используйте dbo.LoginHistory вместо [dbo.LoginHistory]

UPDATE STATISTICS dbo.LoginHistory WITH FULLSCAN;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...