Jag kan inte återskapa detta scenario. Jag försökte följande:
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;
Resultat:
--------
39578
Om detta begränsas till 8K skulle jag gissa att något av följande är sant:
-
Kolumnen är faktiskt
VARBINARY(8000)
. -
Du väljer data i Management Studio och analyserar längden på data som visas där. Detta är begränsat till max 8192 tecken i resultat till text, om så är fallet, så använd
DATALENGTH()
direkt mot kolumnen är ett mycket bättre tillvägagångssätt.