image sql-server-2008 ado.net varbinary

¿Existe una gran diferencia técnica entre los tipos de datos VARBINARY(MAX) e IMAGE?



sql-server-2008 ado.net (4)

Estaba leyendo en internet estas declaraciones sobre los tipos de datos de SQL Server :

  1. VARBINARY(MAX) : las cadenas binarias con una longitud variable pueden almacenar hasta 2 ^ 31-1 bytes.

  2. IMAGE : cadenas binarias con una longitud variable de hasta 2 ^ 31-1 (2,147,483,647) bytes.

¿Existe realmente una gran diferencia técnica entre los tipos de datos VARBINARY(MAX) e IMAGE ?

Si hay una diferencia: ¿tenemos que personalizar la forma en que ADO.NET inserta y actualiza el campo de datos de imagen en SQL Server?


Almacenan los mismos datos: esto es todo lo que va.

La "imagen" está en desuso y tiene un conjunto limitado de funciones y operaciones que funcionan con ella. varbinary (max) se puede utilizar como varbinary más corto (ídem para texto y varchar (max)).

No utilice la imagen para ningún proyecto nuevo: solo busque aquí los problemas que las personas tienen con los tipos de datos de imagen y texto debido a la funcionalidad limitada.

De hecho, VARBINARY puede almacenar cualquier información que se pueda convertir en una matriz de bytes, como archivos, y este es el mismo proceso que utiliza el tipo de datos IMAGE , por lo que, desde este punto de vista, ambos tipos de datos pueden almacenar los mismos datos. Pero VARBINARY tiene una propiedad de tamaño, mientras que IMAGE acepta cualquier tamaño hasta los límites del tipo de datos, por lo que al usar el tipo de datos IMAGE , gastará más recursos para almacenar los mismos datos. En un Microsoft® SQL Server® , el tipo de datos IMAGE está realmente en desuso, entonces debe apostar en el tipo de datos VARBINARY .

Pero tenga cuidado: el Microsoft® SQL Server® CE® (incluida la última versión 4.0) sigue usando el tipo de datos IMAGE y probablemente este tipo de datos no "desaparezca" tan pronto, porque en las versiones Compact Edition, este tipo de datos es mejor que cualquier otro Otro para el almacenamiento rápido de archivos.


Almacenan los mismos datos: esto es todo lo que va.

La " image " está en desuso y tiene un conjunto limitado de funciones y operaciones que funcionan con ella. varbinary(max) puede utilizar como varbinary más corto (ídem para text y varchar(max) ).

No utilice la image para ningún proyecto nuevo: solo busque aquí los problemas que las personas tienen con text tipos de datos de image y text debido a la funcionalidad limitada.

Ejemplos de SO: One , Two


Creo que técnicamente son similares, pero es importante observar lo siguiente en la documentación :

Los tipos de datos ntext, text e image se eliminarán en una versión futura de MicrosoftSQL Server. Evite usar estos tipos de datos en un nuevo trabajo de desarrollo y planee modificar las aplicaciones que los usan actualmente. Use nvarchar (max), varchar (max) y varbinary (max) en su lugar.

Tipos de datos fijos y de longitud variable para almacenar caracteres grandes no Unicode y Unicode y datos binarios. Los datos Unicode utilizan el conjunto de caracteres UNICODE UCS-2.


Sin darme cuenta encontré una diferencia entre ellos. Puede insertar una cadena en un tipo de imagen pero no en un varbinary. Quizás es por eso que MS está desaprobando el tipo de imagen, ya que realmente no tiene sentido establecer una imagen con una cadena.