sql >> Databáze >  >> RDS >> Sqlserver

Jak vyřešit index omezení délky klíče 900 ve sloupci, který má datový typ varchar(4096) v SQL Server 2005?

Nemůžete – jak již jasně uvádí chybová zpráva, žádná položka rejstříku nesmí být delší než 900 bajtů.

Nemůžete indexovat pole varchar(4096) - tečka. Nelze to obejít – je to tvrdý limit SQL Serveru – není možné jej konfigurovat, měnit, zvětšovat. Viz Knihy online – maximální velikost indexových klíčů pro potvrzení.

Musíte buď omezit sloupec "hodnota" na méně než 900 bajtů, nebo najít jiný způsob, jak tato data uložit - nebo je prostě nezahrnout do indexu. Pokud chcete, aby pole „hodnota“ v indexu mělo pouze krycí index (aby bylo možné uspokojit dotazy z položky rejstříku), můžete pole přesunout jako zahrnutý sloupec v indexu – ty nespadají pod limit 900 bajtů.

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

Tento index by měl fungovat.



  1. Jak získat *všechno* zpět z uložené procedury pomocí JDBC

  2. Ajax stránkování s Jquery, PHP, Mysql

  3. Jak nahrát obrázek do databáze pomocí php skriptu?

  4. připojit AngularJS k mysql pomocí mé služby PHP?