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.