varios values registros muchos mas insertar desde datos sql sql-server tsql insert

values - ¿Insertar múltiples filas en una sola consulta SQL?



insertar varios registros en sql access (4)

En SQL Server 2008 puede insertar varias filas utilizando una sola instrucción SQL INSERT.

INSERT INTO MyTable ( Column1, Column2 ) VALUES ( Value1, Value2 ), ( Value1, Value2 )

Para obtener referencia a esto, consulte el Curso 2778A de MOC - Escribir consultas SQL en SQL Server 2008.

Por ejemplo:

INSERT INTO MyTable ( Column1, Column2, Column3 ) VALUES (''John'', 123, ''Lloyds Office''), (''Jane'', 124, ''Lloyds Office''), (''Billy'', 125, ''London Office''), (''Miranda'', 126, ''Bristol Office'');

Tengo varios conjuntos de datos para insertar a la vez, digamos 4 filas.

Mi tabla tiene tres columnas: Person , Id y Office .

INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office"); INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office"); INSERT INTO MyTable VALUES ("Billy", 125, "London Office"); INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");

¿Puedo insert las 4 filas en una sola SQL statement ?


Si está insertando en una sola tabla, puede escribir su consulta de esta manera (quizás solo en MySQL):

INSERT INTO table1 (First, Last) VALUES (''Fred'', ''Smith''), (''John'', ''Smith''), (''Michael'', ''Smith''), (''Robert'', ''Smith'');


INSERT que utilizan la sintaxis de VALUES pueden insertar varias filas. Para hacer esto, incluya múltiples listas de valores de columna, cada uno entre paréntesis y separados por comas.

Ejemplo:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);


NOTA: Esta respuesta es para SQL Server 2005. Para SQL Server 2008 y versiones posteriores, existen métodos mucho mejores como se ve en las otras respuestas.

Puedes usar INSERT con SELECT UNION ALL :

INSERT INTO MyTable (FirstCol, SecondCol) SELECT ''First'' ,1 UNION ALL SELECT ''Second'' ,2 UNION ALL SELECT ''Third'' ,3 ...

Sin embargo, solo para conjuntos de datos pequeños, lo que debería estar bien para sus 4 registros.