sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server 2008 R2 Varbinary Tamaño máximo

No puedo reproducir este escenario. Intenté lo siguiente:

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;

Resultados:

--------
39578

Si esto se limita a 8K, supongo que cualquiera de los siguientes es cierto:

  1. La columna es en realidad VARBINARY(8000) .

  2. Está seleccionando los datos en Management Studio y analizando la longitud de los datos que se muestran allí. Esto está limitado a un máximo de 8192 caracteres en los resultados de texto, si este es el caso, use DATALENGTH() directamente contra la columna es un enfoque mucho mejor.