Tento scénář nemohu reprodukovat. Zkusil jsem následující:
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;
Výsledky:
--------
39578
Pokud je to omezeno na 8K, pak bych hádal, že platí jedna z následujících možností:
-
Sloupec je ve skutečnosti
VARBINARY(8000)
. -
Vybíráte data v Management Studio a analyzujete délku dat, která se tam zobrazují. Toto je omezeno na max. 8192 znaků ve výsledcích na text, pokud je to tento případ, tak pomocí
DATALENGTH()
přímo proti sloupci je mnohem lepší přístup.