none
¿Como hacer un UPDATE a un Registro copiando los valores de otro? RRS feed

  • Pregunta

  • ¿Tengo que ir tomando nota y fijándome en los valores del primero y copiando uno a uno los campos para el segundo, o hay alguna otra manera, más ágil y automatizable?

     

    Ejemplo: Copiar los valores de los campos del registro con idFigura = 100 en el del idFigura = 200

    Hago un select * from Figuras_Campos where idfigura = 200, me anoto los valores y los cambio uno a uno con la sentencia.

    Update Figuras_Campos set

    (idfigura = 0, descfigura = 1, ampliacion = 1, numexpediente = 1, autorparlamentario = 1, comision = 1, ministerio = 1, fecharealizacion = 0, idsituacion = 1, votaciones = 1, posturas = 1, mantemientoparlamentarios = 1, idcargosolicitado = 0, fechaboe = 1, numsancion = 0, idtipoorigen = 0, retenidoserc = 0, marcanc = 0, portafirmaselaboracion = 0, portafirmasdireccion = 1, asesor = 0, fechavencimiento = 0)

     

    No hay algo que sea más rápido y no requiera de ir campo por campo, etc....????????

     

    Saludos.

    Gracias.

    lunes, 4 de abril de 2011 11:37

Respuestas

  • Puedes hacer uso del FROM dentro del UPDATE. En tu ejemplo, algo como:

     

    UPDATE u

    SET u.idFigura=fg.idFigura, u.descFigura=fg.descFigura, ...

    FROM Figuras_Campos AS u, Figuras_Campos AS fg

    WHERE u.idFigura=200 AND fg.idFigura =100

     

     


    lunes, 4 de abril de 2011 11:55

Todas las respuestas

  • Puedes hacer uso del FROM dentro del UPDATE. En tu ejemplo, algo como:

     

    UPDATE u

    SET u.idFigura=fg.idFigura, u.descFigura=fg.descFigura, ...

    FROM Figuras_Campos AS u, Figuras_Campos AS fg

    WHERE u.idFigura=200 AND fg.idFigura =100

     

     


    lunes, 4 de abril de 2011 11:55
  • Entiendo. Si que agiliza un poco, ya que nos quitamos tener que anotar los valores. Aunque seguimos teniendo que sacar todos los campos, que en una tabla con muchos, es bastante tedioso. Pero supongo que no debe haber más alternativa.

     

    Gracias por tu contestación.

    lunes, 4 de abril de 2011 12:40
  • Como de grande son las tablas, y los registros seleccionados?, me refiero al numero de registros.
    Que tipo de campos son los que actualizas, son o forman parte de algún índice, claves foráneas…
    Intenta aclararnos, un poco mas, cuales son exactamente tus inquietudes con esta pregunta, como por ejemplo, posibles problemas de bloqueos, altos tiempos de actualización…

     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    lunes, 4 de abril de 2011 21:36