SELECT OBJECT_NAME(dt.object_id) ,
si.name ,
dt.avg_fragmentation_in_percent,
dt.avg_page_space_used_in_percent
FROM
(SELECT object_id ,
index_id ,
avg_fragmentation_in_percent,
avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, 'DETAILED')
WHERE index_id <> 0
) AS dt --does not return information about heaps
INNER JOIN sys.indexes si
ON si.object_id = dt.object_id
AND si.index_id = dt.index_id
這是一段測試索引是否需要重建的T-SQL語法
但是很怪,我去Run之後
竟然產生了
訊息 102,層級 15,狀態 1,行 11
接近 '(' 之處的語法不正確。
不知道是那裡出了問題,請各位大大幫忙一下
請先確認資料庫相容等級是否有90 以上,因dm_db_index_physical_stats 需在相容等級90以上才能使用,我試過相容等級90以下也會出現你所說的錯誤訊息,所以你先檢查一下吧。
When 相容等級=80