tamaño de campos

25/04/2006 - 09:04 por Oscar | Informe spam
Hola

me da el siguiente error al ejecutar la sentencia update:

"cannot create a row of size 8184 which is greater than the allowable
maximum of 8060". Los campos de sql que tengo son varchar de 8000, pero si
no me equivoco el tamaño máximo de un campo varchar es 8000, no se si van
por ahi los tiros, pero que campo puedo utilizar para que no me de este
error?

Saludos, Oscar

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
25/04/2006 - 09:39 | Informe spam
"Oscar" wrote in message
news:%
"cannot create a row of size 8184 which is greater than the allowable
maximum of 8060". Los campos de sql que tengo son varchar de 8000, pero si
no me equivoco el tamaño máximo de un campo varchar es 8000, no se si van
por ahi los tiros, pero que campo puedo utilizar para que no me de este
error?



Los varchar pueden medir hasta 8000 cada uno, pero hay una limitación
global para la suma de todos los campos del registro, que no pueden contener
en su conjunto más de 8060 caracteres en total. Si tienes dos campos de 8000
como máximo pero que contienen 100 cada uno, se pueden grabar sin problemas,
y si uno contiene 8000 y el otro 2, también. Pero si uno contiene 5000 y el
otro 4000, suman 9000 y no caben en los 8060 del registro.
En lugar de varchar puedes usar TEXT. Los campos de tipo TEXT se guardan
fuera del registro y por lo tanto no tienen limitaciones de longitud, pero
como contrapartida, al estar fuera resultan más lentos, y además tienen
muchas limitaciones en cuanto a las búsquedas que puedes hacer sobre ellos.
Si tienes la versión 2005 de SQL Server, también puedes usar
VARCHAR(MAX), que admite caracteres sin limitación de longitud, y admite
búsquedas igual que el VARCHAR(8000).
Respuesta Responder a este mensaje
#2 Jesús López
26/04/2006 - 20:19 | Informe spam
Además en SQL Server 2005 un registro puede ocupar más de una página, es
decir ya no existe la limitación de 8060 bytes por registro como en SQL
Server 2000.

Otra solución, a parte de usar campos de tipo text, es dividir la tabla en
dos o más tablas que tengan la misma clave primaria y se repartan los campos
grandes, así puedes seguir manteniendo los datos de tipo varchar que no
tienen las limitaciones de los de tipo text.


Saludos:

Jesús López




"Alberto Poblacion"
escribió en el mensaje news:
"Oscar" wrote in message
news:%
"cannot create a row of size 8184 which is greater than the allowable
maximum of 8060". Los campos de sql que tengo son varchar de 8000, pero
si no me equivoco el tamaño máximo de un campo varchar es 8000, no se si
van por ahi los tiros, pero que campo puedo utilizar para que no me de
este error?



Los varchar pueden medir hasta 8000 cada uno, pero hay una limitación
global para la suma de todos los campos del registro, que no pueden
contener en su conjunto más de 8060 caracteres en total. Si tienes dos
campos de 8000 como máximo pero que contienen 100 cada uno, se pueden
grabar sin problemas, y si uno contiene 8000 y el otro 2, también. Pero si
uno contiene 5000 y el otro 4000, suman 9000 y no caben en los 8060 del
registro.
En lugar de varchar puedes usar TEXT. Los campos de tipo TEXT se
guardan fuera del registro y por lo tanto no tienen limitaciones de
longitud, pero como contrapartida, al estar fuera resultan más lentos, y
además tienen muchas limitaciones en cuanto a las búsquedas que puedes
hacer sobre ellos.
Si tienes la versión 2005 de SQL Server, también puedes usar
VARCHAR(MAX), que admite caracteres sin limitación de longitud, y admite
búsquedas igual que el VARCHAR(8000).


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida