Fórum Stored Procedure respeitando foreign key #441274
29/04/2013
0
Pessoal, tenho a segunte stored procedure:
Funciona perfeitamente. Agora criei uma tabela chamada QS e preciso inserir nessa tabela alguns dados a mais, recebendo o ultimo id da tabela Auncio.
Basicamente, pegar o ID do anuncio q eu acabei de inserir na stored procedure e inserir tb um novo registro na tabela QS, utilizando esse id e outros dados.
Como posso melhorar então essa stored procedure pra q faça isso?
create or alter procedure PROC_NOVO_ANUNCIO (
ID_TEMPLATE integer,
TEXTO varchar(1000),
DATA_CRIACAO date,
DATA_ULTIMA_ATUALIZACAO date,
ESTA_ATIVA char(1),
TODOS_COM_MAIS char(1))
as
begin
insert into "Anuncio" ("Id_Template", "Texto", "Data_Criacao", "Data_Ultima_Atualizacao", "Active", "TodosComMais")
values (:id_template, :texto, :data_criacao, :data_ultima_atualizacao, :esta_ativa, :todos_com_mais);
suspend;
end^
Funciona perfeitamente. Agora criei uma tabela chamada QS e preciso inserir nessa tabela alguns dados a mais, recebendo o ultimo id da tabela Auncio.
Basicamente, pegar o ID do anuncio q eu acabei de inserir na stored procedure e inserir tb um novo registro na tabela QS, utilizando esse id e outros dados.
Como posso melhorar então essa stored procedure pra q faça isso?
Cristiano Franco
Curtir tópico
+ 0
Responder
Posts
01/05/2013
Alvaro Vieira
Olá.
Vamos ver se entendi a estrutura da tabela "Anuncio": quando você diz que quer saber o último ID nela criado o campo desse ID não é o "Id_Template", certo ?
Então vou supor que na tabela "Anuncio" você tenha um campo chamado "IDAnuncio" o qual é incrementado por um Generator ou de qualquer outra maneira.
Se assim for, basta fazer um select por ele: SELECT MAX(IDANUNCIO) ULTIMOID FROM ANUNCIO
Abraço.
Vamos ver se entendi a estrutura da tabela "Anuncio": quando você diz que quer saber o último ID nela criado o campo desse ID não é o "Id_Template", certo ?
Então vou supor que na tabela "Anuncio" você tenha um campo chamado "IDAnuncio" o qual é incrementado por um Generator ou de qualquer outra maneira.
Se assim for, basta fazer um select por ele: SELECT MAX(IDANUNCIO) ULTIMOID FROM ANUNCIO
Abraço.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)