Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Actualizar datos de una tabla

Estas en el tema de Actualizar datos de una tabla en el foro de SQL Server en Foros del Web. Bueno tengo 2 BD, con la misma tabla etmestablec. Ahora toda la informacion de "B" lo quiero pasar hacia "A" y genere este update @import ...
  #1 (permalink)  
Antiguo 15/07/2013, 10:47
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 18
Antigüedad: 11 años, 2 meses
Puntos: 0
Pregunta 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 original
  1. UPDATE A
  2. SET     a.ESTFECHINS = b.ESTFECHINS             ,   a.CATCODIGO = b.CATCODIGO               ,  
  3.         a.ESTNOMBCOM = b.ESTNOMBCOM             ,   a.ESTRAZONSOC = b.ESTRAZONSOC           ,  
  4.         a.ESTDIRECCION = b.ESTDIRECCION         ,   a.ESTURBANIZ = b.ESTURBANIZ             ,
  5.         a.ESTDIRENUME = b.ESTDIRENUME           ,   a.ESTINTERIOR = b.ESTINTERIOR           ,  
  6.         a.UBICODIGO = b.UBICODIGO               ,   a.ESTNUMETLF1 = b.ESTNUMETLF1           ,  
  7.         a.ESTNUMETLF2 = b.ESTNUMETLF2           ,   a.ESTFAX = b.ESTFAX                     ,
  8.         a.ESTEMAIL = b.ESTEMAIL                 ,   a.ESTLUGAREG = b.ESTLUGAREG             ,  
  9.         a.DSACODIGO = b.DSACODIGO               ,   a.TPRCODIGO = b.TPRCODIGO               ,  
  10.         a.SETCODIGO = b.SETCODIGO               ,   a.SSTCODIGO = b.SSTCODIGO               ,      
  11.         a.ESTCODIINS =b.ESTCODIINS              ,   a.ESTNUMERUC = b.ESTNUMERUC             ,  
  12.         a.ESTPAGWEB = b.ESTPAGWEB               ,   a.ESTINDICPC = b.ESTINDICPC             ,  
  13.         a.ESTINDIRPR = b.ESTINDIRPR             ,   a.EXPCODIGOINI = b.EXPCODIGOINI         ,
  14.         a.ESTFECHINI = b.ESTFECHINI             ,   a.EDDCODIGO = b.EDDCODIGO               ,  
  15.         a.ESTOBSERVA = b.ESTOBSERVA             ,   a.DOCNUMECORR = b.DOCNUMECORR           ,  
  16.         a.ESTNUMERES = b.ESTNUMERES             ,   a.ESTFECHRES = b.ESTFECHRES             ,
  17.         a.TDDCODIGOULT = b.TDDCODIGOULT         ,   a.ESTNUMEDOCULT = b.ESTNUMEDOCULT       ,  
  18.         a.ESTFECHDOCULT = b.ESTFECHDOCULT       ,   a.ESTDIREFISC = b.ESTDIREFISC           ,  
  19.         a.ESTURBANIZFISC = b.ESTURBANIZFISC     ,   a.ESTDIRENUMEFISC = b.ESTDIRENUMEFISC   ,
  20.         a.ESTINTERIORFISC = b.ESTINTERIORFISC   ,   a.UBICODIGOFISC = b.UBICODIGOFISC       ,
  21.         a.DSACODIGOINS = b.DSACODIGOINS         ,   a.SOLCODIGOINS = b.SOLCODIGOINS         ,  
  22.         a.DSACODIGOULT = b.DSACODIGOULT         ,   a.SOLCODIGOULT = b.SOLCODIGOULT         ,
  23.         a.DSACODIGOCIERRE = b.DSACODIGOCIERRE   ,   a.OPENUMEROCIERRE = b.OPENUMEROCIERRE   ,
  24.         a.ESTDOCUCIERRE = b.ESTDOCUCIERRE       ,   a.ESTDOCUFECHCIERRE = b.ESTDOCUFECHCIERRE,
  25.         a.MTVCODIGOCIERRE = b.MTVCODIGOCIERRE   ,   a.TDTCODICIE = b.TDTCODICIE             ,
  26.         a.ESTFECHPROC = b.ESTFECHPROC           ,   a.ESTHORAFUNC = b.ESTHORAFUNC           ,  
  27.         a.ESTINDITRAN = b.ESTINDITRAN           ,   a.ESTFECHREG = b.ESTFECHREG             ,  
  28.         a.ESTFECHULT = b.ESTFECHULT             ,   a.USRCODIGO = b.USRCODIGO               ,
  29.         a.ESTSITUA = b.ESTSITUA
  30. FROM edellp112594.LimaSur.dbo.ETMESTABLEC B
  31.     INNER JOIN edellp112594.BDDesarrollo.dbo.ETMESTABLEC A
  32.     ON A.ESTNUMEINS=B.ESTNUMEINS
  33. 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 original
  1. INSERT      edellp112594.BDDesarrollo.dbo.ETMESTABLEC(
  2.             ESTNUMEINS      ,ESTFECHINS      ,CATCODIGO        ,ESTNOMBCOM      ,
  3.             ESTRAZONSOC     ,ESTDIRECCION    ,ESTURBANIZ       ,ESTDIRENUME     ,
  4.             ESTINTERIOR     ,UBICODIGO       ,ESTNUMETLF1      ,ESTNUMETLF2     ,
  5.             ESTFAX          ,ESTEMAIL        ,ESTLUGAREG       ,DSACODIGO       ,
  6.             TPRCODIGO       ,SETCODIGO       ,SSTCODIGO        ,ESTCODIINS      ,
  7.             ESTNUMERUC      ,ESTPAGWEB       ,ESTINDICPC       ,ESTINDIRPR      ,
  8.             EXPCODIGOINI    ,ESTFECHINI      ,EDDCODIGO        ,ESTOBSERVA      ,
  9.             DOCNUMECORR     ,ESTNUMERES      ,ESTFECHRES       ,TDDCODIGOULT    ,
  10.             ESTNUMEDOCULT   ,ESTFECHDOCULT   ,ESTDIREFISC      ,ESTURBANIZFISC  ,
  11.             ESTDIRENUMEFISC ,ESTINTERIORFISC ,UBICODIGOFISC    ,DSACODIGOINS    ,
  12.             SOLCODIGOINS    ,DSACODIGOULT    ,SOLCODIGOULT     ,DSACODIGOCIERRE ,
  13.             OPENUMEROCIERRE ,ESTDOCUCIERRE   ,ESTDOCUFECHCIERRE,MTVCODIGOCIERRE ,
  14.             TDTCODICIE      ,ESTFECHPROC     ,ESTHORAFUNC      ,ESTINDITRAN     ,
  15.             ESTFECHREG      ,ESTFECHULT      ,USRCODIGO        ,ESTSITUA )
  16.  
  17. SELECT      B.ESTNUMEINS      ,B.ESTFECHINS      ,B.CATCODIGO        ,B.ESTNOMBCOM      ,
  18.             B.ESTRAZONSOC     ,B.ESTDIRECCION    ,B.ESTURBANIZ       ,B.ESTDIRENUME     ,
  19.             B.ESTINTERIOR     ,B.UBICODIGO       ,B.ESTNUMETLF1      ,B.ESTNUMETLF2     ,
  20.             B.ESTFAX          ,B.ESTEMAIL        ,B.ESTLUGAREG       ,B.DSACODIGO       ,
  21.             B.TPRCODIGO       ,B.SETCODIGO       ,B.SSTCODIGO        ,B.ESTCODIINS      ,
  22.             B.ESTNUMERUC      ,B.ESTPAGWEB       ,B.ESTINDICPC       ,B.ESTINDIRPR      ,
  23.             B.EXPCODIGOINI    ,B.ESTFECHINI      ,B.EDDCODIGO        ,B.ESTOBSERVA      ,
  24.             B.DOCNUMECORR     ,B.ESTNUMERES      ,B.ESTFECHRES       ,B.TDDCODIGOULT    ,
  25.             B.ESTNUMEDOCULT   ,B.ESTFECHDOCULT   ,B.ESTDIREFISC      ,B.ESTURBANIZFISC  ,
  26.             B.ESTDIRENUMEFISC ,B.ESTINTERIORFISC ,B.UBICODIGOFISC    ,B.DSACODIGOINS    ,
  27.             B.SOLCODIGOINS    ,B.DSACODIGOULT    ,B.SOLCODIGOULT     ,B.DSACODIGOCIERRE ,
  28.             B.OPENUMEROCIERRE ,B.ESTDOCUCIERRE   ,B.ESTDOCUFECHCIERRE,B.MTVCODIGOCIERRE ,
  29.             B.TDTCODICIE      ,B.ESTFECHPROC     ,B.ESTHORAFUNC      ,B.ESTINDITRAN     ,
  30.             B.ESTFECHREG      ,B.ESTFECHULT      ,B.USRCODIGO        ,B.ESTSITUA
  31. FROM edellp112594.LimaSur.dbo.ETMESTABLEC B
  32. WHERE b.ESTNUMEINS NOT IN ( SELECT ESTNUMEINS
  33.                             FROM edellp112594.BDDesarrollo.dbo.ETMESTABLEC A
  34.                             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.
  #2 (permalink)  
Antiguo 15/07/2013, 10:53
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Actualizar datos de una tabla

si tienes una pk entonces lo que pasa es que estas insertando valores duplicados para ese campo, revisa la info de tu query para que veas en donde se te duplican los valores :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 15/07/2013, 11:02
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 18
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Actualizar datos de una tabla

claro mi pk es "ESTNUMEINS" ahora cual seria la solucion ?? ya que el mismo pk de B tiene que estar en A
  #4 (permalink)  
Antiguo 15/07/2013, 11:07
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Actualizar datos de una tabla

lo que te recomiendo que hagas es lo siguiente, a tu tabla B, quitale los constraints(pk,fk etc) una vez que tengas tu info "bien" ponle los constraints que le corresponden, aqui el problema que veo que tienes es que una o ya tienes registros en tu tabla y quieres insertar otro igual o tu query para la insercion esta regresando valores duplicados...

saludos,
Libras
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: actualizacion, bd, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:13.