Qual è la dimensione massima di un file che posso inserire utilizzando varbinary (max) in SQL Server 2008 R2? Ho provato a cambiare il valore massimo nella colonna a più di 8000 byte ma non me lo consente, quindi suppongo che il massimo sia 8.000 byte, ma da this article on MSDN, dice che la dimensione massima di archiviazione è 2^31- 1 byte:SQL Server 2008 R2 Dimensione massima varbinary
varbinary [(n | max)]
lunghezza variabile dati binari. n può essere un valore compreso tra 1 e 8.000. max indica che la dimensione massima della memoria è 2^31-1 byte. La dimensione della memoria è la lunghezza effettiva dei dati inseriti + 2 byte. I dati inseriti possono essere 0 byte di lunghezza. Il sinonimo ANSI SQL per varbinary è binario variabile.
Quindi, come posso archiviare file più grandi in un campo varbinary? Non sto considerando se usare un FILESTREAM dal momento che i file che voglio salvare sono da 200kb a 1MB max, Il codice sto usando:
UPDATE [table]
SET file = (SELECT * FROM OPENROWSET (BULK 'C:\A directory\A file.ext', SINGLE BLOB) alias)
WHERE idRow = 1
sono stato in grado di eseguire il codice con successo per i file minore o uguale di 8000 byte. Se provo con un file 8001 byte, fallirà. Il mio campo file sul tavolo ha un campo chiamato "file" tipo varbinary(8000)
che come ho detto, non posso cambiare ad un valore più grande.
Come hai provato? Puoi mostrare il codice che hai usato per fare questo e creare la struttura della tabella per il tavolo? Inoltre non esiste una cosa come 'nvarbinary'. –
Mi spiace volevo dire varbinary (max), ho anche aggiunto il codice che ho usato, grazie mille –
Hai controllato le impostazioni della modalità di compatibilità? –