Necesito almacenar archivos binarios en la base de datos de SQL Server. ¿Cuál es el mejor tipo de datos de Varbinary e Image?
Respuestas:
Dado que la imagen está en desuso, debe usar varbinary.
por Microsoft (gracias por el enlace @Christopher)
Los tipos de datos de texto, texto e imagen se eliminarán en una versión futura de Microsoft SQL Server. Evite el uso de estos tipos de datos en nuevos trabajos de desarrollo y planee modificar las aplicaciones que los usan actualmente. Utilice nvarchar (max), varchar (max) y varbinary (max) en su lugar.
Tipos de datos de longitud fija y variable para almacenar datos binarios y de caracteres grandes no Unicode y Unicode. Los datos Unicode utilizan el juego de caracteres UNICODE UCS-2.
También está el bastante elegante FileStream
, introducido en SQL Server 2008.
FileStream
es solo un comportamiento de almacenamiento. Filestream se implementa mediante el uso varbinary(max)
y la realización de cambios en la instancia de su servidor SQL.
https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql
imagen
Datos binarios de longitud variable de 0 a 2 ^ 31-1 (2,147,483,647) bytes. Aún así, se admite el uso de tipos de datos de imagen, pero tenga en cuenta:
https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql
varbinary [(n | max)]
Datos binarios de longitud variable. n puede ser un valor de 1 a 8.000. max indica que el tamaño máximo de almacenamiento es 2 ^ 31-1 bytes. El tamaño de almacenamiento es la longitud real de los datos ingresados + 2 bytes. Los datos que se ingresan pueden tener 0 bytes de longitud. El sinónimo ANSI SQL para varbinary es binario variable.
Así que ambos tienen el mismo tamaño (2 GB). Pero tenga en cuenta:
Aunque el final del tipo de datos "imagen" aún no está determinado, debe utilizar el equivalente de prueba "futuro".
Pero tienes que preguntarte: ¿por qué almacenar BLOBS en una columna?