none
Subconsultas Insert / Select RRS feed

  • Pregunta

  • Hola,

    Tengo una duda, quiero hacer un Insert de un Select... Pero no se si la sintaxis es correcta.

    INSERT INTO TABLA1 (nombre,apellido,telefono,edad) 
    SELECT nombre,apellido,telefono,edad
    FROM TABLA2
    WHERE edad=X

    martes, 21 de febrero de 2017 17:05

Respuestas

  • J.Ramon,

    Es correcto en caso la tabla [TABLA1] no tenga mas columnas con la restricción NOT NULL.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta J.Ramon martes, 21 de febrero de 2017 18:44
    martes, 21 de febrero de 2017 17:16

Todas las respuestas

  • J.Ramon,

    Es correcto en caso la tabla [TABLA1] no tenga mas columnas con la restricción NOT NULL.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta J.Ramon martes, 21 de febrero de 2017 18:44
    martes, 21 de febrero de 2017 17:16
  • Hola:

    Si, es correcta.

    INSERT (Transact-SQL)


    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    • Marcado como respuesta J.Ramon martes, 21 de febrero de 2017 18:44
    • Desmarcado como respuesta Joyce_ACModerator miércoles, 22 de febrero de 2017 16:01
    martes, 21 de febrero de 2017 17:16
  • Vale, y en el caso de que quisiera por ejemplo meter un dato que no tengo en el select??
    Por ejemplo si tuviera

    INSERT INTO TABLA1(nombre,apellido,telefono,edad,fecha)
    SELECT nombre,apellido,telefono,edad,?Fecha,?Importe
    FROM TABLA2
    WHERE edad
    =X

    ?fecha querría poner la fecha actual.

    martes, 21 de febrero de 2017 17:37
  • INSERT INTO TABLA1(nombre,apellido,telefono,edad,fecha) 
    SELECT nombre,apellido,telefono,edad,GETDATE()
    FROM TABLA2
    WHERE edad=X
    Tienes que especificar la misma cantidad de columnas en el INSERT INTO como en el SELECT

    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google


    martes, 21 de febrero de 2017 17:45
  • J.Ramon,

    En el enlace que te proporcionó Sergio indica claramente la sintaxis de la cláusula INSERT, en la lectura de los argumentos hay una sección que indica que se puede escribir una expresión como parte de la lista de valores que se insertarán en la tabla, ¿y qué es una expresión? es una constante, una variable, una función, etc., o la combinación de ellos. Para el caso  puntual, necesitas usar la función GETDATE() que retorna la marca de tiempo actual según el sistema de base de datos:

    INSERT INTO TABLA1 (nombre, apellido, telefono, edad, FechaActual) 
    SELECT nombre, apellido, telefono, edad, GETDATE()
    FROM TABLA2
    WHERE edad = @edad;
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    martes, 21 de febrero de 2017 17:46
  • Ok! Perdonar pero no vi ese enlace...

    Gracias!
    martes, 21 de febrero de 2017 18:45