Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Dimensioni massime variabili variabili di SQL Server 2008 R2

Non posso riprodurre questo scenario. Ho provato quanto segue:

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;

Risultati:

--------
39578

Se questo viene limitato a 8K, allora suppongo che uno dei seguenti sia vero:

  1. La colonna è in realtà VARBINARY(8000) .

  2. Stai selezionando i dati in Management Studio e analizzando la lunghezza dei dati che vengono visualizzati lì. Questo è limitato a un massimo di 8192 caratteri nei risultati in testo, se questo è il caso, quindi utilizzando DATALENGTH() direttamente contro la colonna è un approccio molto migliore.