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

Bagaimana mengatasi 900 indeks batas panjang kunci pada kolom yang memiliki tipe data varchar (4096) di SQL Server 2005?

Anda tidak bisa - karena pesan kesalahan sudah dengan jelas menyatakan, entri indeks apa pun tidak boleh lebih dari 900 byte.

Anda tidak dapat mengindeks bidang varchar(4096) - titik. Tidak ada jalan lain - ini adalah batas SQL Server yang sulit - tidak ada cara untuk mengonfigurasinya, mengubahnya, membuatnya lebih besar. Lihat Buku Online - Ukuran Maksimum Tombol Indeks untuk konfirmasi.

Anda perlu membatasi kolom "nilai" Anda menjadi kurang dari 900 byte, atau mencari cara lain untuk menyimpan data itu - atau tidak memasukkannya ke dalam indeks. Jika Anda hanya ingin bidang "nilai" Anda dalam indeks memiliki indeks penutup (agar dapat memenuhi kueri dari entri indeks), Anda dapat memindahkan bidang tersebut menjadi kolom yang disertakan dalam indeks - yang tidak berada di bawah batas 900 byte.

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

Indeks itu seharusnya berfungsi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Daftar Dipisahkan Koma SQL dari Beberapa Kolom

  2. Menggabungkan satu kolom menjadi satu baris di SQL Server Management Studio

  3. Bagaimana saya bisa memotong datetime di SQL Server?

  4. Kode VBA untuk Menambahkan Tabel Tertaut dengan Kunci Utama

  5. Menggunakan variabel Lingkungan di T-SQL