sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo resolver el índice de límite de longitud de clave 900 en la columna que tiene el tipo de datos varchar (4096) en SQL Server 2005?

No puede:como ya indica claramente el mensaje de error, cualquier entrada de índice no puede tener más de 900 bytes de longitud.

No puede indexar un campo varchar (4096) - punto. No hay forma de evitarlo, es un límite estricto de SQL Server, no hay forma de configurarlo, cambiarlo, hacerlo más grande. Consulte Libros en línea:tamaño máximo de las claves de índice para confirmación.

Debe limitar su columna de "valor" a menos de 900 bytes, o encontrar otra forma de almacenar esos datos, o simplemente no incluirlos en el índice. Si solo desea que su campo "valor" en el índice tenga un índice de cobertura (para poder satisfacer las consultas de la entrada del índice), puede mover el campo para que sea una columna incluida en el índice - esos no caen bajo el límite de 900 bytes.

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

Ese índice debería funcionar.