Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leonardo Moura

Inserir um valor num campo de acordo com outro campo na mesma tabela

Recommended Posts

problema:tenho a tabela DOREMI.tenho nela os campos X e Y.eu quero que o campo Y seja populado com o valor do campo X incrementado de 1.os dois serão INTEIROS.como faço isso?por Trigger? por Stored Procedure? por Procedure? no Código?estou utilizando ASP.abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso de inserção... insert DOREMI (X, Y) values (valorX, valorX + 1)se for atualização de dados... update DOREMI set Y = X + 1Não seria isto ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe. na verdade o X vai ser um autoincremet, ou seja, o banco vai gerar esse valor... então eu teria que esperar o banco gerar esse valor e inserir no y. poderia fazer um INSERT e depois um UPDATE, mas tem como fazer isso na mesma QUERY?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma alternativa é você descobrir o último valor cadastrado para "X" antes da inserção do registro e aí passar o valor, somado de um, no insert.

 

Mais ou menos assim...

 

BEGIN TRANdeclare @Max int; set @Max = (select MAX(X) from DOREMI)insert DOREMI (Y) values (@Max + 1)IF @@ERROR = 0   COMMITELSE   ROLLBACK

Vou pesquisar se existe um modo mais "elegante" de fazer isto, qualquer coisa.... te aviso.

 

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.