Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Taille maximale de SQL Server 2008 R2 Varbinary

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 :

  1. La colonne est en fait VARBINARY(8000) .

  2. 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.