willian.eti.br
Todos os artigos
Como Inserir Arquivos VARBINARY(MAX) no SQL Server
Foto por Resource Database · Unsplash · Unsplash License
SQL ServerVARBINARYOPENROWSETBanco de DadosT-SQLTOTVS

Como Inserir Arquivos VARBINARY(MAX) no SQL Server

Tutorial de banco de dados: Aprenda a converter e inserir arquivos e imagens no formato VARBINARY(MAX) em colunas do SQL Server via script.

Willian Silva··2 min de leitura

Quando uma coluna do tipo VARBINARY(MAX) precisa armazenar o conteúdo binário de um arquivo — como um PDF, imagem ou documento — é possível fazer isso diretamente via T-SQL, sem depender de uma aplicação externa para a carga.

O comando OPENROWSET com SINGLE_BLOB

O SQL Server oferece a função OPENROWSET com a opção BULK e o argumento SINGLE_BLOB, que lê o conteúdo completo de um arquivo do sistema de arquivos e o retorna como um valor binário compatível com VARBINARY(MAX).

UPDATE TABELA SET COLUNA=(
  SELECT BulkColumn FROM OPENROWSET(BULK N'C:\arquivo.pdf', SINGLE_BLOB) AS Document)

Substitua:

  • TABELA pelo nome real da tabela no seu banco
  • COLUNA pelo nome da coluna do tipo VARBINARY(MAX)
  • C:\arquivo.pdf pelo caminho completo do arquivo no servidor SQL

Pré-requisitos

Para executar este comando, é necessário que:

  • A opção Ad Hoc Distributed Queries esteja habilitada no SQL Server
  • O arquivo esteja acessível pelo serviço do SQL Server (caminho no servidor, não na máquina cliente)
  • O usuário tenha permissão de leitura sobre o arquivo e permissão ADMINISTER BULK OPERATIONS no banco

Quando usar VARBINARY(MAX)

A coluna VARBINARY(MAX) é utilizada para armazenar dados binários de até 2 GB. É comum encontrá-la em sistemas TOTVS como o TOTVS RM, onde arquivos anexados a registros são armazenados diretamente no banco de dados em vez de no sistema de arquivos.

Habilitando Ad Hoc Distributed Queries

Caso o servidor retorne erro informando que o OPENROWSET está desabilitado, execute:

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
 
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE

Atenção: habilite essa opção apenas em ambientes controlados. Em produção, avalie as implicações de segurança antes de ativar.

Tags

SQL ServerVARBINARYOPENROWSETBanco de DadosT-SQLTOTVS