Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Sintaks salah di dekat '(' saat memeriksa fragmentasi indeks

Basis data Anda mungkin disetel dengan tingkat kompatibilitas 80 (SQL Server 2000) dan fungsi DB_ID dan OBJECT_ID tidak dapat digunakan sebagai parameter untuk fungsi manajemen dinamis.

Anda harus mengubah tingkat kompatibilitas ke sesuatu yang lebih baru atau menggunakan variabel sebelum kueri:

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. Cara Membuat Batasan Cek pada Kolom Tunggal di SQL Server - Tutorial SQL Server / TSQL Part 83

  2. SQL Server 2008:TOP 10 dan berbeda bersama-sama

  3. SQL Query terus berjalan untuk waktu yang sangat lama jika istilah pencarian tidak ditemukan

  4. Penggunaan TransactionScope dengan read uncommitted - apakah dengan (nolock) dalam SQL diperlukan?

  5. Bagaimana menjalankan SQL yang dihasilkan dari suatu variabel?