У меня есть следующий запрос SQL Server 2008, который работает для всех моих баз данных (50+), кроме одной.Этот запрос должен опираться только на функции системного уровня, поэтому он должен выполняться в любой базе данных SQL Server.Все мои базы данных находятся на одном сервере, так что это не проблема сервера, а проблема с одним экземпляром базы данных.
SELECT *
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) AS istats
WHERE avg_fragmentation_in_percent > 20
В ошибочной базе данных появляется следующая ошибка.
Msg102, Уровень 15, Состояние 1, Строка 2 Неверный синтаксис рядом с '('.
Следующие два запроса работают нормально.
SELECT *
FROM sys.dm_db_index_physical_stats(72, NULL, NULL, NULL, NULL) AS istats
WHERE avg_fragmentation_in_percent > 20
select DB_ID()
Итак, похоже, проблема в том, что SQL Serverимеет при разборе запроса только в этой конкретной базе данных. Кто-нибудь знает, что может вызвать это?