SQL Server Performance

Modificar datos de una columna

Discussion in 'Preguntas sobre SQL Server en Español.' started by oreto, Sep 1, 2005.

  1. oreto New Member


    Tengo una columna, (Id_Incl) con valores no nulos, y he de modificar todos los datos de la misma cambiando solo esa columna de la tabla por otra en la que si están bien.
    ¿Existe alguna manera de hacerlo?
    He creado una tabla nueva con los datos correctos, y me gustaría cambiar la columna que esta mal por la buena, lo he intentado con una sentencia UPDATE, pero en lugar de cambiar los datos me ha puesto un 2 como valor de todos los registros.

    Muchas gracias
  2. Luis Martin Moderator

    Las columnas son de diferente tipo?.
    Si las columnas son del mismo tipo, el Update tiene que funcionar sin problemas.

    Si son de distinto tipo, dependiendo de que tipo, puedes usar el CONVERT junto con el Update.


    Luis Martin
    Moderator
    SQL-Server-Performance.com

    One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important
    Bertrand Russell


    All postings are provided “AS IS” with no warranties for accuracy.



  3. oreto New Member

    Hola Luis las columnas tienen el mismo tipo de datos, lo que me ocurre es:
    Tengo la tabla PUNTOS _ MUESTREO con un campo Id_Expo cuyos datos quiero cambiar por los de la tabla NUEVO que contiene el campo Id_expo actualizado. Cuando aplico esta sentencia, lo que ocurre es que me aparecen todos los registros con un 2 y está información no es la que contiene el campo Id_Expo en la tabla nuevo


    UPDATE PUNTOS _ MUESTREO

    SET Id_Expo=nuevo.Id_Expo

    FROM nuevo

    GO

    Algo falla, ¿podrías ayudarme?

    Gracias
  4. amayral New Member

    Hola,

    Tu escribiste esto:

    UPDATE PUNTOS _ MUESTREO

    SET Id_Expo=nuevo.Id_Expo

    FROM nuevo

    GO

    y el error que hay es el siguiente:

    UPDATE PUNTOS _ MUESTREO

    SET Id_Expo=nuevo.Id_Expo

    FROM PUNTOS _ MUESTREO
    INNER JOIN nuevo
    ON PUNTOS _ MUESTREO.??? = nuevo.???

    Por eso siempre te actualiza el campo con 2, porque el último registro de la tabla nuevo en el campo Id_Expo tiene valor 2

    Saludos



  5. Luis Martin Moderator

    Exactamente.


    Luis Martin
    Moderator
    SQL-Server-Performance.com

    One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important
    Bertrand Russell


    All postings are provided “AS IS” with no warranties for accuracy.



  6. oreto New Member

    Muchas gracias, ya he resuelto el problema.
    Saludos
    Oreto

Share This Page