Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Неправилен синтаксис близо до '(' при проверка на фрагментацията на индекса

Вашата база данни вероятно е настроена с ниво на съвместимост 80 (SQL Server 2000) и функциите DB_ID и OBJECT_ID не могат да се използват като параметър за функция за динамично управление.

Трябва или да промените нивото на съвместимост на нещо по-ново, или да използвате променливи преди заявка:

USE StockSystem;
GO
DECLARE
    @database_id INT = DB_ID(),
    @object_id   INT = OBJECT_ID(N'dbo.StockItems');

SELECT a.index_id, name, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (@database_id ,@object_id , NULL, NULL, NULL) AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сложен вид поле низ - число - низ

  2. SQL Server Concatenate GROUP BY

  3. SQL възникна проблем при изпращането на командата към програмата

  4. Можем ли да инсталираме Express edition и Standard edition на SQL Server на един и същ PC потребител?

  5. Как да автоматизирате събирането на данни за растежа на базата данни на SQL Server