Hola amigos tengo este problema, tengo que duplicar filas de una tabla con llave primaria identity, todo esto funciona, pero cuando voy a duplicar otra tabla que tiene llaves foraenaas de la primera tabla mencionada no encuentro que solucion darle:
Mejor detallo exactamente las tablas:
la llave cont_vig_c_iid es identity y al ejecutar parte de mi procedimiento que es:
INSERT INTO T_CONT_VIGENCIA
SELECT
V.cont_c_icod,
V.cont_c_yver+1,
V.cont_c_ymod,
V.cont_vig_c_dfec_ini,
V.cont_vig_c_dfec_fin,
V.cont_vig_c_bactivo
FROM T_CONT_VIGENCIA V
WHERE
V.cont_c_icod=@cont_c_icod AND
V.cont_c_yver=@cont_c_yver AND
V.cont_c_ymod=@cont_c_ymod
las variable @cont_c_icod, @cont_c_yver, @cont_c_ymod son (1,1,0) respectivamente, vienen de otra tabla.
hasta ahí todo ok ya que el resultado es:
como se puede ver la
llave 53 y 54 son las replicas que se generaron exitosamente
Ahora viene mi
problema en otra tabla:<
y mi procedimiento de insercion es este:
INSERT INTO T_CONT_RV
SELECT
cont_vig_c_iid,
cont_ex_c_iid,
cont_rv_c_eporc_x_rf,
cont_rv_c_ctipo,
cont_c_icod,
cont_c_yver+1,
cont_c_ymod
FROM T_CONT_RV
WHERE cont_c_icod=@cont_c_icod AND
cont_c_yver=@cont_c_yver AND
cont_c_ymod=@cont_c_ymod
que al ejecutar me brinda el siguiente resultado:
cuyo resultado son las filas con llaves 37 y 38, sin embargo las llaves 27 y 28 estan erradas ya que deberían ser:
53 y 54 respectivamente.
estuve intentando hacer algo como un subselect dentro de la consulta select en el campo cont_rv_c_iid, pero me da error ya que retorna multiples valores.
ojala puedan ayudarme.