¿Cuál es el tamaño máximo de un archivo que puedo insertar usando varbinary (max) en SQL Server 2008 R2? Traté de cambiar el valor máximo en la columna a más de 8,000 bytes pero no me deja, así que supongo que el máximo es 8,000 bytes, pero de this article on MSDN, dice que el tamaño máximo de almacenamiento es 2^31- 1 bytes:SQL Server 2008 R2 Varbinary Max Size
varbinary [(n | max)]
de longitud variable de datos binarios. n puede ser un valor de 1 a 8,000. max indica que el tamaño de almacenamiento máximo es de 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 que varía.
Entonces, ¿cómo puedo almacenar archivos más grandes en un campo varbinary? No estoy pensando en utilizar un FILESTREAM ya que los archivos que desea guardar son de 200kb a 1mb Max, el código que estoy usando:
UPDATE [table]
SET file = (SELECT * FROM OPENROWSET (BULK 'C:\A directory\A file.ext', SINGLE BLOB) alias)
WHERE idRow = 1
he sido capaz de ejecutar ese código con éxito a los archivos de menos o igual de 8000 bytes. Si intento con un archivo con un tamaño de 8001 bytes, fallará. Mi campo de archivo en la tabla tiene un campo llamado "archivo" tipo varbinary(8000)
que como he dicho, no puedo cambiar a un valor mayor.
¿Cómo lo intentó? ¿Puedes mostrar el código que usaste para hacer esto y crear la estructura de la tabla para la tabla? Además, no existe tal cosa como 'nvarbinary'. –
Lo siento, quise decir varbinary (max), también he agregado el código que utilicé, muchas gracias –
¿Has comprobado la configuración del modo de compatibilidad? –