insert or update dependiendo de PK
Buen dia gente del foro:
Estoy intentando realizar un Stored Procedure que inserte o modifique registros en una tabla dependiendo de su PK. Buscando encontre en la web encontre un ejemplo que se ve como sigue: Código SQL [-]BEGIN insert into t1 (id, c1, c2) values (:id, :c1, :c2) WHEN SQLCODE -803 DO update t1 set c1 = :c1, c2 = :c2 WHERE id = :id; END El ejemplo funciona perfectamente pero yo lo reemplazo por algo asi Código SQL [-]BEGIN insert into t1 (t1.id, t1.c1, t1.c2) select t2.id,t2.c1,t3.c1 from t2 inner join t3 on .... WHEN SQLCODE -803 DO update t1 set c1 = (Select c1 from t3 where t1.id = t3.id ); END El stored procedure se genera y funciona , el problema que tengo es que la parte de INSERT solo la realiza si la tabla T1 esta vacia. Alguna sugerencia o alternativa espero Utilizo firebird 2.0 y IBOConsole. saludos |
Insert or update dependiendo de pk
Necesito insertar registros en una tabla desde otra , para lo cual ejecuto un codigo com el que sigue
Si ejecuto el codigo por segunda vez, como hacer para detectar si el registro existe en tabladestino y en ese caso realizar un Update. |
Si estas utilizando Firebird podri quedar asi...
Otra forma:
Saludos |
Joe_Balda no repitas hilos. hace apenas 2 horas has colocado el mismo aquí.
Te recomiendo que revises la Guía de estilo de los foros. |
Muchas gracias por la respuesta, el primer codigo por lo que lei funciona a partir de la version 2.1 de firebird, yo utilizo la version 2.0.
El codigo que utiliza el MERGE, no me lo reconoce cuando lo quiero insertar en un STORED PROCEDURE o en el editor de sql. Utilizo IBOConsole. Alguna idea de que me falta o que error estoy cometiendo? saludos |
La franja horaria es GMT +2. Ahora son las 22:32:54. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi