CODIGOS CLIENTES IBEXPERT
Boa Tarde,
Estou precisando mudar todos os codigos da tabela de clientes do meu banco de dados, São mais de 5000, estou precisando reorganiza-los. FireBird 1.5 estou utilizando o IBEXPERT.
Alguem saberia me dizer se é possível, pois o maximo que consegui foi exportar para xls utilizando o SQL EDITOR.
Agradeço a atenção!
Guelman
Curtidas 0
Respostas
Guelman
27/09/2010
Boa Tarde,
Estou precisando mudar todos os codigos da tabela de clientes do meu banco de dados, São mais de 5000, estou precisando reorganiza-los. FireBird 1.5 estou utilizando o IBEXPERT.
Alguem saberia me dizer se é possível, pois o maximo que consegui foi exportar para xls utilizando o SQL EDITOR.
Agradeço a atenção!
Ninguem???
GOSTEI 0
Emerson Nascimento
27/09/2010
mas você quer reorganizar como? renumerar? qual a ordem dessa renumeração?
GOSTEI 0
Guelman
27/09/2010
mas você quer reorganizar como? renumerar? qual a ordem dessa renumeração?
Sim, preciso renumerar todos os codigo, pois foram feitos de forma irregular conforme abaixo:
CODIGO NOME DO CLIENTE
152 GUILHERME VIEIRA
165 EDUARDO NOGUEIRA
203 LEONARDO GONTIJO
QUERO DEIXAR DESTA FORMA:
CODIGO NOME DO CLIENTE
001 GUILHERME VIEIRA
002 EDUARDO NOGUEIRA
003 LEONARDO GONTIJO
Mas como eu disse, são mais de 5000 cadastros, e fazer esta alteração manualmente ou seja, um por um, é inviável.
Agradeço pela atenção!
GOSTEI 0
Emerson Nascimento
27/09/2010
como exemplo, teste essa consulta:
select
c.codigo codigoatual,
(select count(c2.codigo)+1
from clientes c2
where c2.codigo < c.codigo) codigonovo,
c.nome
from
clientes c
order by
c.codigo
dependendo da sua versão do FB você poderá usar funções para trazer o 'codigonovo' formatado.
select
c.codigo codigoatual,
(select count(c2.codigo)+1
from clientes c2
where c2.codigo < c.codigo) codigonovo,
c.nome
from
clientes c
order by
c.codigo
dependendo da sua versão do FB você poderá usar funções para trazer o 'codigonovo' formatado.
GOSTEI 0
Guelman
27/09/2010
Não consegui, a versão do meu FB é 1.5, poderia me passar mais informações?
O cadastro foi feito saltando numeros e quando mando ordenar por codigos que vejo o salto enorme entre um cliente e outro, preciso reorganizar pois irei fazer syc dos clientes com uma filial.
GOSTEI 0
Eliézio Mesquita
27/09/2010
GUELMAN, você pode fazer uma migração:
Você monta um select pegando todos os dados que você precisa, mas nao inclua o codigo do cliente, dai vc mand gerar um script de insert, pelos IBExpert mesmo tem um botão de exportação, dai você limpa o sua tabela de clientes e limpa também o generator de cliente, deve deixar com valor 0, feito isso você manda rodar seu script de inserção, pq ai o generator vai reoganizar seu códigos.
Guelman, esse processo estou acreditando que você está usando as triggers e generators no seu banco, lembrando que antes desse processo você deve fazer uma cópia do seu banco.
Caso não consiga entre em contado novamente.
Abraço,
Eliézio Mesquita
Você monta um select pegando todos os dados que você precisa, mas nao inclua o codigo do cliente, dai vc mand gerar um script de insert, pelos IBExpert mesmo tem um botão de exportação, dai você limpa o sua tabela de clientes e limpa também o generator de cliente, deve deixar com valor 0, feito isso você manda rodar seu script de inserção, pq ai o generator vai reoganizar seu códigos.
Guelman, esse processo estou acreditando que você está usando as triggers e generators no seu banco, lembrando que antes desse processo você deve fazer uma cópia do seu banco.
Caso não consiga entre em contado novamente.
Abraço,
Eliézio Mesquita
GOSTEI 0
Emerson Nascimento
27/09/2010
Não consegui, a versão do meu FB é 1.5, poderia me passar mais informações?
O cadastro foi feito saltando numeros e quando mando ordenar por codigos que vejo o salto enorme entre um cliente e outro, preciso reorganizar pois irei fazer syc dos clientes com uma filial.
colega, o que você quer dizer com 'não consegui'? deu erro? o resultado não era o esperado? o que houve?
GOSTEI 0
Adilson Rumao
27/09/2010
Usando o IBExpert você pode dar um select na tabela clientes com os campos que você quer tipo:
select nome_cli, endfat_cli, email_cli from clientes
e depois gera o script e manda executar no banco novo.
GOSTEI 0
Wilson Junior
27/09/2010
Tente assim:
Espero ter colaborado.
CREATE GENERATOR GEN_CODIGO_CLIENTE; SELECT cli.Codigo AS CodAtual, ( SELECT GEN_ID(GEN_CODIGO_CLIENTE, 1) FROM rdb$Database ) AS CodNovo, cli.Nome FROM CLIENTES cli ORDER BY cli.Codigo; DROP GENERATOR GEN_CODIGO_CLIENTE;
Espero ter colaborado.
GOSTEI 0