
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.
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:
TABELApelo nome real da tabela no seu bancoCOLUNApelo nome da coluna do tipoVARBINARY(MAX)C:\arquivo.pdfpelo caminho completo do arquivo no servidor SQL
Pré-requisitos
Para executar este comando, é necessário que:
- A opção
Ad Hoc Distributed Queriesesteja 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 OPERATIONSno 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
RECONFIGUREAtenção: habilite essa opção apenas em ambientes controlados. Em produção, avalie as implicações de segurança antes de ativar.