Fórum CODIGOS CLIENTES IBEXPERT #387332
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!
Posts
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???
29/09/2010
Emerson Nascimento
mas você quer reorganizar como? renumerar? qual a ordem dessa renumeração?
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!
29/09/2010
Emerson Nascimento
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.
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.
29/09/2010
Eliézio Mesquita
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
29/09/2010
Emerson Nascimento
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?
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.
Tente assim:
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.