Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cú pháp không chính xác gần '(' khi kiểm tra phân mảnh chỉ mục

Cơ sở dữ liệu của bạn có thể được đặt ở mức tương thích 80 (SQL Server 2000) và không thể sử dụng các hàm DB_ID và OBJECT_ID làm tham số cho chức năng quản lý động.

Bạn nên thay đổi mức độ tương thích thành một cái gì đó mới hơn hoặc sử dụng các biến trước khi truy vấn:

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. Cách lấy tất cả các Bảng có hoặc không có Ràng buộc khóa chính trong Cơ sở dữ liệu máy chủ Sql - Hướng dẫn sử dụng SQL Server / TSQL 59

  2. SQL Server 2008 FullTextSearch một ký tự trong tên bị thiếu trong kết quả

  3. Sao chép bảng thay đổi các giá trị của 1 cột và chèn nó vào cùng một bảng

  4. Cách gửi kết quả truy vấn qua email trong SQL Server (T-SQL)

  5. Tại sao máy chủ sql lưu trữ các ký tự dấu chấm hỏi thay vì các ký tự tiếng Nhật trong các trường NVarchar?