sql >> Database >  >> RDS >> Sqlserver

SQL Server 2008 R2 Varbinaire maximale grootte

Ik kan dit scenario niet reproduceren. Ik heb het volgende geprobeerd:

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;

Resultaten:

--------
39578

Als dit wordt beperkt tot 8K, dan vermoed ik dat een van de volgende situaties waar is:

  1. De kolom is eigenlijk VARBINARY(8000) .

  2. U selecteert de gegevens in Management Studio en analyseert de lengte van de gegevens die daar worden weergegeven. Dit is beperkt tot maximaal 8192 tekens in resultaten naar tekst, als dit het geval is, gebruik dus DATALENGTH() direct tegen de kolom is een veel betere benadering.



  1. SQL-tabel opvragen en dubbele rijen uit een resultatenset verwijderen

  2. Probleem met Entity-update met jpa/hibernate

  3. Converteer een SQL Server-database naar MYSQL-database

  4. Syntaxisfout of toegangsfout:1055 Expressie #8 van de SELECT-lijst staat niet in de GROUP BY-clausule en bevat een niet-geaggregeerde kolom