Non posso riprodurre questo scenario. Ho provato quanto segue:
USE tempdb;
GO
CREATE TABLE dbo.blob(col VARBINARY(MAX));
INSERT dbo.blob(col) SELECT NULL;
UPDATE dbo.blob
SET col = (SELECT BulkColumn
FROM OPENROWSET( BULK 'C:\Folder\File.docx', SINGLE_BLOB) alias
);
SELECT DATALENGTH(col) FROM dbo.blob;
Risultati:
--------
39578
Se questo viene limitato a 8K, allora suppongo che uno dei seguenti sia vero:
-
La colonna è in realtà
VARBINARY(8000)
. -
Stai selezionando i dati in Management Studio e analizzando la lunghezza dei dati che vengono visualizzati lì. Questo è limitato a un massimo di 8192 caratteri nei risultati in testo, se questo è il caso, quindi utilizzando
DATALENGTH()
direttamente contro la colonna è un approccio molto migliore.