Sie können nicht - wie die Fehlermeldung bereits deutlich sagt, darf kein Indexeintrag länger als 900 Byte sein.
Sie können ein varchar(4096)-Feld nicht indizieren - Punkt. Daran führt kein Weg vorbei – es ist ein hartes SQL Server-Limit – keine Möglichkeit, es zu konfigurieren, zu ändern, zu vergrößern. Siehe Books Online – Maximale Größe von Indexschlüsseln zur Bestätigung.
Sie müssen entweder Ihre "Wert"-Spalte auf weniger als 900 Bytes begrenzen oder eine andere Möglichkeit finden, diese Daten zu speichern - oder sie einfach nicht in den Index aufnehmen. Wenn Sie nur möchten, dass Ihr "Wert"-Feld im Index einen abdeckenden Index hat (um Abfragen aus dem Indexeintrag beantworten zu können), können Sie das Feld in eine eingeschlossene Spalte verschieben im Index - diese fallen nicht unter die 900-Byte-Grenze.
CREATE NONCLUSTERED INDEX idx_ncl_2
ON BFPRODATTRASSOCIATION(attributeid)
INCLUDE (productid, value)
Dieser Index sollte funktionieren.