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

Làm thế nào để giải quyết chỉ mục giới hạn độ dài khóa 900 trên cột có kiểu dữ liệu varchar (4096) trong SQL Server 2005?

Bạn không thể - như thông báo lỗi đã nêu rõ ràng, bất kỳ mục nhập chỉ mục nào không được dài hơn 900 byte.

Bạn không thể lập chỉ mục một trường varchar (4096) - dấu chấm. Không có cách nào khác - đó là một giới hạn SQL Server khó - không có cách nào để cấu hình nó, thay đổi nó, làm cho nó lớn hơn. Xem Sách Trực tuyến - Kích thước Tối đa của Khóa Chỉ mục để xác nhận.

Bạn cần giới hạn cột "giá trị" của mình dưới 900 byte hoặc tìm cách khác để lưu trữ dữ liệu đó - hoặc không đưa nó vào chỉ mục. Nếu bạn chỉ muốn trường "giá trị" của mình trong chỉ mục có chỉ mục bao trùm (để có thể đáp ứng các truy vấn từ mục nhập chỉ mục), bạn có thể di chuyển trường thành cột được bao gồm trong chỉ mục - những thứ đó không nằm dưới giới hạn 900 byte.

CREATE NONCLUSTERED INDEX idx_ncl_2 
  ON BFPRODATTRASSOCIATION(attributeid) 
  INCLUDE (productid, value)

Chỉ mục đó sẽ hoạt động.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi Xml sang Table SQL Server

  2. Danh sách được phân tách bằng dấu phẩy SQL khỏi nhiều cột

  3. Trường hợp xoay vòng khi nào?

  4. Chèn giá trị chuỗi hex vào trường hình ảnh máy chủ sql đang nối thêm 0

  5. Thứ tự theo số lượng không sắp xếp đúng - SQL (MS Access 2007)