Не мога да възпроизведа този сценарий. Опитах следното:
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;
Резултати:
--------
39578
Ако това е ограничено до 8K, тогава бих предположил, че някое от следните е вярно:
-
Колоната всъщност е
VARBINARY(8000)
. -
Вие избирате данните в Management Studio и анализирате дължината на данните, които се показват там. Това е ограничено до максимум 8192 знака в резултатите към текста, ако случаят е такъв, така че използвайте
DATALENGTH()
директно срещу колоната е много по-добър подход.