none
Pasar Datos entre Campos de una misma tabla RRS feed

  • Pregunta

  • Buenas tengo una consulta SQL SRV 2008 R2 tengo una tabla con mas de 400 registros y quisiera pasar datos de un campo a otro son del tipo varchar, el diseño de la tabla es la siguiente

    Id / Nombres / Apellidos

    Lo que pasa es que al momento de cargar la data subieron los apellidos en el campo Nombres y los Nombres en el campo Apellidos

    Id / Nombres / Apellidos

    1 Alejo Paul

    y deberia ser :

    Id / Nombres / Apellidos

    1 Paul Alejo

    Gracias.


    Social C# Microsoft

    sábado, 23 de enero de 2016 15:26

Respuestas

  • Hola Paul Alejo Castro,

    Basta con permutar el valor de las columnas:

    /*Creación de objetos de prueba*/
    CREATE TABLE #Datos (Id int, Nombres nvarchar(100), Apellidos nvarchar(100));
    INSERT INTO #Datos VALUES (1, 'Molina', 'Juan'), (2, 'Rodriguez', 'Mario'), (3, 'Castro', 'Miriam');
    
    /*Actualización de datos*/
    UPDATE	#Datos
    SET		Nombres = Apellidos,
    		Apellidos = Nombres;
    
    /*Revisión*/
    SELECT * FROM #Datos;
    
    /*Eliminar objetos creados*/
    DROP TABLE #Datos;

    sábado, 23 de enero de 2016 15:53

Todas las respuestas

  • Hola Paul Alejo Castro,

    Basta con permutar el valor de las columnas:

    /*Creación de objetos de prueba*/
    CREATE TABLE #Datos (Id int, Nombres nvarchar(100), Apellidos nvarchar(100));
    INSERT INTO #Datos VALUES (1, 'Molina', 'Juan'), (2, 'Rodriguez', 'Mario'), (3, 'Castro', 'Miriam');
    
    /*Actualización de datos*/
    UPDATE	#Datos
    SET		Nombres = Apellidos,
    		Apellidos = Nombres;
    
    /*Revisión*/
    SELECT * FROM #Datos;
    
    /*Eliminar objetos creados*/
    DROP TABLE #Datos;

    sábado, 23 de enero de 2016 15:53
  • Recuerda siempre postear la definicion de tu estructura de datos y data de prueba para que nos sea mas sencillo ayudarte, debido a la minima cantidad de filas que afirmas tener en dicha tabla yo haria un proceso sencillo de copiar la data a una variable tipo tabla y sobre la misma realizar la actualizacion.  Aqui un ejemplo que deberas renombrar con el nombre de la tabla que corresponda:

    DECLARE @TablaPersona AS TABLE
    (
      id  int,
      Nombre varchar(200),
      Apellido varchar(200)
    );
    
    
    -- Copias los datos de tu tabla a la variable de tipo Table
    INSERT INTO @TablaPersona
    SELECT * FROM TuTabla
    
    
    UPDATE T
    SET T.Nombre=@TablaPersona.Apellido,
        T.Apellido=@TablaPersona.Nombre
    FROM TuTabla AS T
    INNER JOIN @TablaPersona AS TP
    ON T.id=TP.id
    
    

    No he tenido tiempo de probarlo, pero asumo que no habria problema, recuerda sacarte una copia de tu tabla o hacer dicha prueba en un entorno de prueba.


    "How many years can some people exist before they're allowed to be free" Bob Dylan Email: info@geohernandez.com Blog: geeks.ms/blogs/ghernandez

    sábado, 23 de enero de 2016 15:55