Preciso armazenar arquivos binários no banco de dados do SQL Server. Qual é o melhor tipo de dados de Varbinary e Image?
Respostas:
Como a imagem está obsoleta, você deve usar varbinary.
por Microsoft (obrigado pelo link @Christopher)
Os tipos de dados ntext, text e image serão removidos em uma versão futura do Microsoft SQL Server. Evite usar esses tipos de dados em novos trabalhos de desenvolvimento e planeje modificar os aplicativos que os usam atualmente. Use nvarchar (max), varchar (max) e varbinary (max).
Tipos de dados de comprimento fixo e variável para armazenar grandes caracteres não Unicode e Unicode e dados binários. Os dados Unicode usam o conjunto de caracteres UNICODE UCS-2.
Há também o bastante sofisticado FileStream, introduzido no SQL Server 2008.
FileStreamé apenas um comportamento de armazenamento. Filestream é implementado usando varbinary(max)e fazendo alterações em sua instância de servidor sql.
https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql
imagem
Dados binários de comprimento variável de 0 a 2 ^ 31-1 (2.147.483.647) bytes. Ainda assim, é possível usar o tipo de dados de imagem, mas esteja ciente de:
https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql
varbinary [(n | max)]
Dados binários de comprimento variável. n pode ser um valor de 1 a 8.000. max indica que o tamanho máximo de armazenamento é 2 ^ 31-1 bytes. O tamanho do armazenamento é o comprimento real dos dados inseridos + 2 bytes. Os dados inseridos podem ter 0 bytes de comprimento. O sinônimo ANSI SQL para varbinary é binário variando.
Portanto, ambos têm o mesmo tamanho (2 GB). Mas esteja ciente de:
Embora o fim do tipo de dados "imagem" ainda não tenha sido determinado, você deve usar o equivalente de prova "futuro".
Mas você precisa se perguntar: por que armazenar BLOBS em uma coluna?