2011-04-19 144 views
7

Estoy guardando archivos (de cualquier tipo) en una tabla sql, utilizando un varbinary (max), descubro que el uso máximo de este tipo de datos es 8000, pero ¿qué Qué significa el 8000 ?,Espacio real máximo en varbinary (max) en SQL Server

la documentación en línea dice que es 8000 bytes, lo que significa que el tamaño máximo del archivo a ser excepto que hay 8000/1024 = 7.8125 KB?,

que empezar a probar y el El archivo máximo que puedo almacenar es de 29.9 MB, si elijo un archivo más grande, obtengo una Sqlexception "La cadena o los datos binarios se truncarán. La declaración ha finalizado". ...

Muchas gracias por cualquier comentario.

+10

Esta afirmación es simplemente ** errónea ** - la capacidad de un campo 'VARBINARIO (MAX)' es ** 2 GB ** (2'147'483'647 bytes) - no solo 8000 ...... –

Respuesta

26

Implementar SQL Server 2012 (nombre en clave de Denali) cuando salga al mercado - que tiene FileTable función :)

  • varbinary(8000) está limitada por 8000 bytes - eso es seguro!
  • varbinary(max) está limitado por 2 gigabytes
  • varbinary(max) FILESTREAM está limitado por el sistema de archivos (FAT32 - 2 GB, NTFS - 16 exabytes)
+1

Encontré el error ... basándome en sus comentarios me di cuenta de que tenía en mi código un Archivo.Size = 8000 (Archivo es un parámetro Sql), ¡¡¡¡¡¡¡¡¡¡¡¡8000 = Max ... !!!! , cuando borré esto, funcionó !! muchas gracias ... – carlos

9

Tomado de aquí:

http://msdn.microsoft.com/en-us/library/ms188362.aspx:

max indica que el tamaño máximo de almacenamiento es 2³¹-1 bytes

que es de 2 147 483 647 bytes. No estoy seguro de por qué se detiene en 29.9MB.

+0

Le gané en ese enlace pero de alguna manera no obtuve la misma reputación. ^^ De todos modos, para aclarar el punto de Mike, 2.147.483.647 bytes es de 2 GB, por lo que excluye cualquier problema de tiempo de espera, que debería ser el tamaño máximo de los archivos antes de cualquier advertencia de truncamiento. – Smudge202

+0

Sí, esa es exactamente la misma información que encontré, pero por alguna razón envía la excepción exactamente a 29.999 MB, no esperaba subir archivos de 2GB pero esperaba un estimado de 30 MB. ¿Alguna otra pregunta de por qué estoy obteniendo esto? Altamente he cambiado los parámetros de IIS ... ¡¡Gracias !! – carlos

4

Tengo los "datos de cadena o binarios podrían truncarse" error al tratando de almacenar 5MB usando varbinary (max) en SQL Server 2005. Aumentar el tamaño de auto crecimiento para la base de datos resolvió el problema. Me tomó un tiempo darme cuenta, así que pensé en compartir :)

+0

Me encuentro con un problema similar: al usar SQL Server Express 10.0.0.2531 no puedo almacenar un archivo de 2 MB en la base de datos. El tipo de columna es varbinary (max), el crecimiento automático está habilitado, incluso aumenté el tamaño inicial y ahora tengo 800 MB de espacio libre en el DB. Aún así obtengo el error de truncamiento. Estoy en una pérdida... – uceumern

Cuestiones relacionadas