Je ne peux pas reproduire ce scénario. J'ai essayé ce qui suit :
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;
Résultats :
--------
39578
Si cela est plafonné à 8K, je suppose que l'une des affirmations suivantes est vraie :
-
La colonne est en fait
VARBINARY(8000)
. -
Vous sélectionnez les données dans Management Studio et analysez la longueur des données qui y sont affichées. Ceci est limité à un maximum de 8192 caractères dans les résultats au texte, si tel est le cas, utilisez donc
DATALENGTH()
directement contre la colonne est une bien meilleure approche.