Ir para conteúdo
Fórum Script Brasil
  • 0

Auto incremento, tabela existente


Marcio_loko

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0

....então.... eu já tenho uma tabela, como o campo tal.....

dai queria jogar os dados dela numa tabela global....

depois apagar a tabela... origem... e voltar os dados da tabela global... com os mesmos dados, só que iniciando os codigos a partir do zero.... entendeu? Acho que agora consegui explicar o que realmente quero.

-- coloquei os dados na tabela local

SELECT * INTO ##GLOBAL

FROM Tabela

-- apaguei ela

drop table tabela

agora queria voltar os dados que estao na tabela global, só que iniciando do 100, depois 101, 202,, etc

entendeu? Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Marcio,

Se você quiser usar o código já criado na tabela principal, pode-se "updatar" os dados sem a necessidade de limpá-los. Mas se você quiser limpar os códigos e fazer novo, ai terá que fazer um loop.

Coloquei dois exemplos logo abaixo, utilizando temporárias.

Este é para "updatar" os campos, utilizando o próprio campo Codigo:

create table #Tabela (Codigo int, dados char(3))

insert into #Tabela values (1, 'XXX')
insert into #Tabela values (2, 'YYY')
insert into #Tabela values (3, 'ZZZ')
insert into #Tabela values (4, 'AAA')

-- conferir dados
select * from #Tabela

update #Tabela set codigo = (codigo+100)

-- conferir dados
select * from #Tabela
Este outro exemplo á para inserir novos códigos, onde a coluna Codigo se encontra com NULL:
create table #Tabela (Codigo int, dados char(3))

insert into #Tabela (dados) values ('XXX')
insert into #Tabela (dados) values ('YYY')
insert into #Tabela (dados) values ('ZZZ')
insert into #Tabela (dados) values ('AAA')

-- conferir dados
select * from #Tabela

-- criar coluna para controle
alter table #Tabela add Controle int identity

-- conferir dados
select * from #Tabela

-- Fazer as inserções. Seleciona e roda até o END do loop
Declare @Contador int
Declare @Controle int

Set @Contador = 100
Set @Controle = 1

While (select max(Controle) from #Tabela) >= @Controle
Begin
  update #Tabela set codigo = @Contador where Controle=@Controle
  Set @Controle = @Controle + 1 
  Set @Contador = @Contador + 1 
End


-- conferir dados
select * from #Tabela

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...