Actualizar datos de una tabla Bueno tengo 2 BD, con la misma tabla etmestablec. Ahora toda la informacion de "B" lo quiero pasar hacia "A" y genere este update
Código SQL:
Ver originalUPDATE A SET a.ESTFECHINS = b.ESTFECHINS , a.CATCODIGO = b.CATCODIGO , a.ESTNOMBCOM = b.ESTNOMBCOM , a.ESTRAZONSOC = b.ESTRAZONSOC , a.ESTDIRECCION = b.ESTDIRECCION , a.ESTURBANIZ = b.ESTURBANIZ , a.ESTDIRENUME = b.ESTDIRENUME , a.ESTINTERIOR = b.ESTINTERIOR , a.UBICODIGO = b.UBICODIGO , a.ESTNUMETLF1 = b.ESTNUMETLF1 , a.ESTNUMETLF2 = b.ESTNUMETLF2 , a.ESTFAX = b.ESTFAX , a.ESTEMAIL = b.ESTEMAIL , a.ESTLUGAREG = b.ESTLUGAREG , a.DSACODIGO = b.DSACODIGO , a.TPRCODIGO = b.TPRCODIGO , a.SETCODIGO = b.SETCODIGO , a.SSTCODIGO = b.SSTCODIGO , a.ESTCODIINS =b.ESTCODIINS , a.ESTNUMERUC = b.ESTNUMERUC , a.ESTPAGWEB = b.ESTPAGWEB , a.ESTINDICPC = b.ESTINDICPC , a.ESTINDIRPR = b.ESTINDIRPR , a.EXPCODIGOINI = b.EXPCODIGOINI , a.ESTFECHINI = b.ESTFECHINI , a.EDDCODIGO = b.EDDCODIGO , a.ESTOBSERVA = b.ESTOBSERVA , a.DOCNUMECORR = b.DOCNUMECORR , a.ESTNUMERES = b.ESTNUMERES , a.ESTFECHRES = b.ESTFECHRES , a.TDDCODIGOULT = b.TDDCODIGOULT , a.ESTNUMEDOCULT = b.ESTNUMEDOCULT , a.ESTFECHDOCULT = b.ESTFECHDOCULT , a.ESTDIREFISC = b.ESTDIREFISC , a.ESTURBANIZFISC = b.ESTURBANIZFISC , a.ESTDIRENUMEFISC = b.ESTDIRENUMEFISC , a.ESTINTERIORFISC = b.ESTINTERIORFISC , a.UBICODIGOFISC = b.UBICODIGOFISC , a.DSACODIGOINS = b.DSACODIGOINS , a.SOLCODIGOINS = b.SOLCODIGOINS , a.DSACODIGOULT = b.DSACODIGOULT , a.SOLCODIGOULT = b.SOLCODIGOULT , a.DSACODIGOCIERRE = b.DSACODIGOCIERRE , a.OPENUMEROCIERRE = b.OPENUMEROCIERRE , a.ESTDOCUCIERRE = b.ESTDOCUCIERRE , a.ESTDOCUFECHCIERRE = b.ESTDOCUFECHCIERRE, a.MTVCODIGOCIERRE = b.MTVCODIGOCIERRE , a.TDTCODICIE = b.TDTCODICIE , a.ESTFECHPROC = b.ESTFECHPROC , a.ESTHORAFUNC = b.ESTHORAFUNC , a.ESTINDITRAN = b.ESTINDITRAN , a.ESTFECHREG = b.ESTFECHREG , a.ESTFECHULT = b.ESTFECHULT , a.USRCODIGO = b.USRCODIGO , a.ESTSITUA = b.ESTSITUA FROM edellp112594.LimaSur.dbo.ETMESTABLEC B INNER JOIN edellp112594.BDDesarrollo.dbo.ETMESTABLEC A ON A.ESTNUMEINS=B.ESTNUMEINS WHERE B.DSACODIGO=@DSACODIGO
Bueno y lo que consegui con eso es actualizar la informacion pero no me inserto nada asi que realize un insert...
Código SQL:
Ver originalINSERT edellp112594.BDDesarrollo.dbo.ETMESTABLEC( ESTNUMEINS ,ESTFECHINS ,CATCODIGO ,ESTNOMBCOM , ESTRAZONSOC ,ESTDIRECCION ,ESTURBANIZ ,ESTDIRENUME , ESTINTERIOR ,UBICODIGO ,ESTNUMETLF1 ,ESTNUMETLF2 , ESTFAX ,ESTEMAIL ,ESTLUGAREG ,DSACODIGO , TPRCODIGO ,SETCODIGO ,SSTCODIGO ,ESTCODIINS , ESTNUMERUC ,ESTPAGWEB ,ESTINDICPC ,ESTINDIRPR , EXPCODIGOINI ,ESTFECHINI ,EDDCODIGO ,ESTOBSERVA , DOCNUMECORR ,ESTNUMERES ,ESTFECHRES ,TDDCODIGOULT , ESTNUMEDOCULT ,ESTFECHDOCULT ,ESTDIREFISC ,ESTURBANIZFISC , ESTDIRENUMEFISC ,ESTINTERIORFISC ,UBICODIGOFISC ,DSACODIGOINS , SOLCODIGOINS ,DSACODIGOULT ,SOLCODIGOULT ,DSACODIGOCIERRE , OPENUMEROCIERRE ,ESTDOCUCIERRE ,ESTDOCUFECHCIERRE,MTVCODIGOCIERRE , TDTCODICIE ,ESTFECHPROC ,ESTHORAFUNC ,ESTINDITRAN , ESTFECHREG ,ESTFECHULT ,USRCODIGO ,ESTSITUA ) SELECT B.ESTNUMEINS ,B.ESTFECHINS ,B.CATCODIGO ,B.ESTNOMBCOM , B.ESTRAZONSOC ,B.ESTDIRECCION ,B.ESTURBANIZ ,B.ESTDIRENUME , B.ESTINTERIOR ,B.UBICODIGO ,B.ESTNUMETLF1 ,B.ESTNUMETLF2 , B.ESTFAX ,B.ESTEMAIL ,B.ESTLUGAREG ,B.DSACODIGO , B.TPRCODIGO ,B.SETCODIGO ,B.SSTCODIGO ,B.ESTCODIINS , B.ESTNUMERUC ,B.ESTPAGWEB ,B.ESTINDICPC ,B.ESTINDIRPR , B.EXPCODIGOINI ,B.ESTFECHINI ,B.EDDCODIGO ,B.ESTOBSERVA , B.DOCNUMECORR ,B.ESTNUMERES ,B.ESTFECHRES ,B.TDDCODIGOULT , B.ESTNUMEDOCULT ,B.ESTFECHDOCULT ,B.ESTDIREFISC ,B.ESTURBANIZFISC , B.ESTDIRENUMEFISC ,B.ESTINTERIORFISC ,B.UBICODIGOFISC ,B.DSACODIGOINS , B.SOLCODIGOINS ,B.DSACODIGOULT ,B.SOLCODIGOULT ,B.DSACODIGOCIERRE , B.OPENUMEROCIERRE ,B.ESTDOCUCIERRE ,B.ESTDOCUFECHCIERRE,B.MTVCODIGOCIERRE , B.TDTCODICIE ,B.ESTFECHPROC ,B.ESTHORAFUNC ,B.ESTINDITRAN , B.ESTFECHREG ,B.ESTFECHULT ,B.USRCODIGO ,B.ESTSITUA FROM edellp112594.LimaSur.dbo.ETMESTABLEC B WHERE b.ESTNUMEINS NOT IN ( SELECT ESTNUMEINS FROM edellp112594.BDDesarrollo.dbo.ETMESTABLEC A WHERE B.DSACODIGO = @DSACODIGO)
Ejecuto los 2 y sale este mensaje: Cita: (3655 filas afectadas)
(3655 filas afectadas)
Mens 2627, Nivel 14, Estado 1, Procedimiento SP_CODIGO_DISA, Línea 48
Infracción de la restricción PRIMARY KEY 'PK_ETMESTABLEC'. No se puede insertar una clave duplicada en el objeto 'dbo.ETMESTABLEC'.
Se terminó la instrucción. Mi PK es ESTNUMEINS en las 2 tablas...
No puedo realizar el delete por que esa tabla tiene relaciones con otras Cita: Mens. 547, Nivel 16, Estado 0, Línea 1
Instrucción DELETE en conflicto con la restricción REFERENCE "FK_ETALMAESTAB_ETMESTABLEC". El conflicto ha aparecido en la base de datos "BDDesarrollo", tabla "dbo.ETTALMAESTAB", column 'ESTNUMEINS'.
Se terminó la instrucción. Algo estoy haciendo mal??
Alguna idea para solucionar este problema que tengo???
Toda la informacion de "B" quiero que se pase hacia "A"
Gracias. |