Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Tamanho Máximo da Varbinária do SQL Server 2008 R2


Não consigo reproduzir este cenário. Eu tentei o seguinte:
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

Se isso estiver sendo limitado a 8K, acho que qualquer uma das seguintes opções é verdadeira:

  1. A coluna é na verdade VARBINARY(8000) .

  2. Você está selecionando os dados no Management Studio e analisando o comprimento dos dados que são exibidos lá. Isso é limitado a um máximo de 8192 caracteres nos resultados para texto, se for o caso, então use DATALENGTH() diretamente contra a coluna é uma abordagem muito melhor.