Ich kann dieses Szenario nicht reproduzieren. Folgendes habe ich versucht:
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;
Ergebnisse:
--------
39578
Wenn dies auf 8K begrenzt wird, würde ich vermuten, dass eine der folgenden Aussagen zutrifft:
-
Die Spalte ist eigentlich
VARBINARY(8000)
. -
Sie wählen die Daten in Management Studio aus und analysieren die Länge der dort angezeigten Daten. Dies ist auf maximal 8192 Zeichen in Ergebnissen zu Text begrenzt, wenn dies der Fall ist, verwenden Sie also
DATALENGTH()
direkt gegen die Spalte ist ein viel besserer Ansatz.