sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2008 R2 Varbinär maxstorlek

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:

  1. Kolumnen är faktiskt VARBINARY(8000) .

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



  1. Välj alla projekt som har matchande taggar

  2. Oracle 11g på Mac OS X

  3. T-SQL för att hitta fjärrservernamnet på den länkade servern

  4. mysql (nästan) fullständig revision