Ajuda com SQL

Delphi

29/12/2010

Criei um campo integer em uma tabela, e gostaria de numera-lo a partir de 1 ate o fim dos registros, mas isso com uma instrucao SQL, alguem saberia como fazer ?     Abs  
Felipe Ip

Felipe Ip

Curtidas 0

Respostas

Ricardo Araujo

Ricardo Araujo

29/12/2010

Boa tarde, 
você esta trabalhando com qual Banco de Dados?

vou passar para você um código usando sql.

exemplo :

  // este codigo vc pegar o último número da tabela.   SQLQuery1.Close;  SQLQuery1.SQLConnection := SQLConnectio1;   SQLQuery1.SQL.Add('select max(codigo) from tbcodigo');  SQLQuery1.Open;
 com isto você pode trabalhar com o último número que a SQLQuery1 pegou espero ter ajudado.

rbbarretorbbarreto@hotmail.com       
  
GOSTEI 0
Felipe Ip

Felipe Ip

29/12/2010

Desculpe talvez nao tenha explicado corretamente, criei um campo integer em uma tabela, nesta tabela  tem muitos registros, e preciso numerar esses registros exatamente usando esse novo campo, gostaria de fazer isso atraves de uma instrucao sql diretamente no ibexpert por exemplo, uso o FB 2.0.   Abs e obrigado  
GOSTEI 0
Leandro

Leandro

29/12/2010

Se ja existe registros nessa tabela e vc quer colocar valor pra esse campo vc pode fazer um generator temporario para alimentar esse campos com a sequencia 1....

se fosse no postgres seria assim

update set campo = nexval('sequenciaTemporaria')

no firebird eu nao me recordo o comando

update set campo = GEN_ID('NomeDoGenerator', Incremento )

GOSTEI 0
Alan Souza

Alan Souza

29/12/2010

se o seu campo não tiver restrições de chave única (PK ou UK), vc pode usar as seguintes sentenças:

update tabela set campo = 0; //é necessário que o campo não esteja nulo, ou senão vc pode usar o coalesce.

update tabela set campo = (select max(campo) + 1 from tabela); //pode ser usado o order by para ordenação por outro campo qualquer, como nome
GOSTEI 0
Alan Souza

Alan Souza

29/12/2010

se o seu campo não tiver restrições de chave única (PK ou UK), vc pode usar as seguintes sentenças:

update tabela set campo = 0; //é necessário que o campo não esteja nulo, ou senão vc pode usar o coalesce.

update tabela set campo = (select max(campo) + 1 from tabela); //pode ser usado o order by para ordenação por outro campo qualquer, como nome
GOSTEI 0
POSTAR