Vou migrar de um banco de dados. Há uma coluna do tipo image
que eu gostaria de exportar para arquivos binários no sistema de arquivos. Um arquivo para cada registro. Como posso fazer isso com o SQL Server?
relate perguntas
-
SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Como determinar se um Índice é necessário ou necessário
Esta é a solução que encontrei:
Ativar
xp_cmdshell
comSe necessário, crie um diretório
xp_cmdshell
para obter as permissões necessárias.Usar BCP com consulta
**your_db deve ser o nome da tabela totalmente qualificado, ou seja, [Yourdb].[YourSchema].[YourTable]
Eu tive o mesmo problema com os 4 bytes extras sendo adicionados ao início de todos os meus arquivos também. Em vez de usar a opção -N no meu comando bcp, alterei para -C RAW. Ao fazer isso, o bcp será solicitado com as seguintes perguntas:
Para corrigir isso, criei um arquivo de texto (i.txt) na raiz do meu servidor sql que continha as seguintes linhas para responder a cada uma delas:
Então, minha linha EXEC bcp se tornou:
Isso exportou meu arquivo sem nenhum dos caracteres extras.
Vim por aí procurando uma solução para exportar uma coluna IMAGE tendo armazenado diferentes tipos de arquivos (pdf, xls, doc, xml ...) que quero exportar.
A abordagem na resposta funcionou apenas para arquivos pdf. Para exportar todos os tipos de arquivos tive que ajustar a solução da seguinte forma:
(1.) Crie um arquivo de modelo de formato:
(2.) Abra o arquivo de formato de exportação criado e edite-o desta forma:
Em seguida, execute seu comando de exportação:
(3.) Caso você encontre esse erro (como eu fiz):
certifique-se do seguinte:
Depois disso, a exportação de qualquer palavra do arquivo IMAGE Column sem erro.
Homenagens para 1. e 2. tudo vai para a resposta da seguinte pergunta: https://stackoverflow.com/questions/1366544/how-to-export-image-field-to-file/24006947#24006947
Se você não tiver nenhum problema com uma solução de GUI, existe um ótimo complemento para SSMS SSMSBoost que fornece muitos recursos úteis e, claro, a maneira mais simples de visualizar imagens armazenadas em SQL (pelo menos na minha opinião)
NOTA : Você deve reiniciar o SSMS após instalar este suplemento.
Instale-o e aproveite a visualização de imagens apenas com: RightClick> Visualize As> Picture
Antes de continuar, certifique-se de que o comando xp_cmdshell esteja habilitado, pois está desabilitado por padrão.
Mantenha o comando em UMA LINHA - LINHA ÚNICA!!!