14 de nov. de 2008

Gerando scripts de inserção via SQL

Durante o desenvolvimento de uma aplicação, geralmente me deparo com a situação aonde preciso gerar uma série de inserts a partir de uma tabela ou tabelas do banco de dados.

Isso acontece por exemplo quando tenho que dar um drop numa tabela (por qq motivo) e eu não quero perder os dados que estão lá. Ou então quando tenho vários bancos de dados de testes e quero testar uma massa de dados que está em um banco em outro dos meus bancos de testes.

Eu não uso nenhuma ferramenta mágica para isso exceto o próprio SQL.

Vamos supor que temos uma tabela de nome Clientes com os campos Nome, Endereco, fone_01, fone_02 e fax. Essa tabela tem 500 registros e quero copiá-los para outro banco de dados. Podemos montar o SQL de inserção usando um select simples:

select 'insert into cliente (nome, endereco, fone_01, fone_02, fax) values (''' + nome + ''', ' + endereco + ''', ' + fone_01 + ''', ' + fone_02 + ''', ' + fax + '''); '
from cliente
where 
  fone_01 is not null

A partir daí, basta salvar o resultado (uma série de strings contendo seus inserts) em um arquivo texto e executar o script no outro banco.

Bom proveito

Nenhum comentário:

Postar um comentário