SQL

¿Cómo insertar varios registros en un solo INSERT en SQL?

Estrada Web Group
Administrador
¿Cómo insertar varios registros en un solo INSERT en SQL?

En este tutorial veremos cómo insertar varias filas de datos en un solo query o consulta en SQL Server, hoy mismo me encuentro con una situación en la que tengo que insertar varias filas de datos con una sola consulta o SQL Query. Es necesario que en un solo INSERT inserte “n” filas en SQL Server, lo primero que se me ocurrió fue crear un bucle para realizar las inserciones, pero investigue un poco y encontré una mejor solución.

En el tutorial anterior, aprendió a agregar una fila a la vez a una tabla mediante la instrucción INSERT.

Para agregar varias filas a una tabla a la vez, use la siguiente forma de la instrucción INSERT:

INSERT INTO table_name (column_list)
VALUES
    (value_list_1),
    (value_list_2),
    ...
    (value_list_n);

En esta sintaxis, en lugar de utilizar una sola lista de valores, utiliza varias listas de valores separadas por comas para la inserción.

El número de filas que puede insertar a la vez es de 1,000 filas con esta forma de la instrucción INSERT. Si desea insertar más filas que eso, debería considerar usar múltiples instrucciones INSERT, BULK INSERT o una tabla derivada.

Tenga en cuenta que esta sintaxis de INSERTAR varias filas solo es compatible con SQL Server 2008 o posterior.

Para insertar varias filas devueltas desde una instrucción SELECT, use la instrucción INSERT INTO SELECT.

SQL Server INSERTAR varias filas - ejemplos

Utilizaremos la tabla sales.promotions creada en el tutorial anterior para la demostración.

Si aún no ha creado la tabla sales.promotions, puede usar la siguiente instrucción CREATE TABLE:

CREATE TABLE sales.promotions (
    promotion_id INT PRIMARY KEY IDENTITY (1, 1),
    promotion_name VARCHAR (255) NOT NULL,
    discount NUMERIC (3, 2) DEFAULT 0,
    start_date DATE NOT NULL,
    expired_date DATE NOT NULL
); 

1) Ejemplo de inserción de varias filas

La siguiente instrucción inserta varias filas en la tabla sales.promotions:

INSERT INTO sales.promotions (
    promotion_name,
    discount,
    start_date,
    expired_date
)
VALUES
    (
        '2020 Estrada Web Group Promotion',
        0.15,
        '20190601',
        '20190901'
    ),
    (
        '2019 Fall Promotion',
        0.20,
        '20191001',
        '20191101'
    ),
    (
        '2019 Winter Promotion',
        0.25,
        '20191201',
        '20200101'
    );

El servidor SQL emitió el siguiente mensaje que indica que tres filas se han insertado correctamente.

(3 rows affected)

Verifiquemos la inserción ejecutando la siguiente consulta:

Aquí está la salida:

sql server  insertar varias columnas en sql server

2) Insertar varias filas y devolver el resultado de lista insertada

Este ejemplo inserta tres filas en la tabla sales.promotions y devuelve la lista de id´s de promoción:

INSERT INTO 
 sales.promotions ( 
 promotion_name, discount, start_date, expired_date
 )
OUTPUT inserted.promotion_id
VALUES
 ('2020 Summer Promotion',0.25,'20200601','20200901'),
 ('2020 Fall Promotion',0.10,'20201001','20201101'),
 ('2020 Winter Promotion', 0.25,'20201201','20210101');

insertar varias filas en una tabla utilizando una sola instrucción INSERT de SQL Server.

En este ejemplo, agregamos la cláusula OUTPUT con la columna que queremos devolver utilizando la sintaxis insert.column_name. Si desea devolver valores de varias columnas, puede usar la siguiente sintaxis:

OUTPUT inserted.column1, inserted.column2...

En este tutorial, aprendió a usar de otra forma la instrucción INSERT de SQL Server para insertar varias filas en una tabla utilizando una instrucción INSERT.

Temas que te ayudaran en SQL Server:

Muy sencillo no crees, si tienes comentarios escríbenos con gusto te responderé.

Compartir artículo:

Más artículos geniales

¿Para qué sirve la función ASCII de SQL Server y cómo utilizarla?

¿Para qué sirve la función ASCII de SQL Server y cómo utilizarla?

En este tutorial, aprenderá a usar la función ASCII() de SQL Server para obtener el código ASCII de un carácter.

Ver artículo completo
Cómo eliminar los espacios en blanco en SQL

Cómo eliminar los espacios en blanco en SQL

En este tutorial veremos como eliminar los espacios en blanco en una consulta de SQL Server

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla ;