Respondida SQL server - Update al registro de un SELECT

  • viernes, 08 de junio de 2012 17:23
     
      Tiene código

    Buen dia,

    me encuentro con la siguiente duda, yo realizo un SELECT a una tabla y traigo un registro.

    SELECT TOP 1 * FROM Persona WHERE EstadoContacto = 1

    pero inmediatamente se traiga ese registro necesito cambiar el estado de ese registro q trajo.

    UPDATE Persona SET EstadoContacto = 2 ......

    ese seria el UPDATE sencillo, pero no encontrado la forma de decirle que cambie de estado ese registro q se trajo.

    Gracias.

Todas las respuestas

  • viernes, 08 de junio de 2012 17:31
     
     Respondida Tiene código

    Si además del TOP pones un ORDER BY y nos indicas cuál es la clave primaria de esa tabla, sería una forma de hacerlo. Por ejemplo:

    SELECT TOP 1 * FROM persona WHERE EstadoContacto=1 ORDER BY <campo>
    
    UPDATE p
    SET EstadoContacto=2
    FROM persona p INNER JOIN (SELECT TOP 1 * FROM persona WHERE EstadoContacto=1 ORDER BY <campo>) AS d ON p.<clave primaria> = d.<clave primaria>

    • Marcado como respuesta RubenDsc viernes, 08 de junio de 2012 17:51
    •  
  • viernes, 08 de junio de 2012 17:51
     
     

    hola Carlos,

    Funciono perfectamente, muchas Gracias.

    Buen dia.