Quiero hacer un lote de inserción, similar a esta pregunta

Cómo hacer un lote de inserción en MySQL

  1. ¿Cuál es la limitación es de SQL Server en el número de filas que se pueden insertar en una instrucción insert ?

  2. Lo que sucede cuando, por ejemplo, el primer valor se inserta, pero la segunda causa de una infracción de clave principal. Son todos INSERT declaraciones revierte?

INSERT INTO tbl_name (a,b) 
VALUES (1, 2), (1, 3));
Si usted tiene que preguntarse, entonces usted probablemente debería ser el uso de BULK INSERT. Yo creo que la respuesta a su pregunta podría ser encontrado con una búsqueda en Google.
Sí he pensado en eso, pero , debido a ciertas restricciones en el sistema de INSERCIÓN MASIVA no es una opción válida

OriginalEl autor Shachaf.Gortler | 2016-05-26

2 Comentarios

  1. 18

    El número Máximo de filas que se pueden insertar en una declaración 1000, cuando el uso de INSERT INTO ... VALUES... es decir,

    INSERT INTO TableName( Colum1)
    VALUES (1),
           (2),
           (3),...... upto 1000 rows. 

    Pero si usted está utilizando una instrucción SELECT para insertar filas en una tabla, no hay un límite para eso, algo como…

    INSERT INTO TableName (ColName)
    Select Col FROM AnotherTable

    Llegando a su segunda pregunta. ¿Qué sucede cuando se produce un error durante la inserción.

    Bien si se va a insertar filas usando multi-valor de construir

    INSERT INTO TableName( Colum1)
    VALUES (1),
           (2),
           (3)

    En el escenario anterior, si cualquier fila de inserción se produce un error en toda la instrucción se deshace, y ninguna de las filas será insertado.

    Pero si se la inserción de filas con una declaración por separado para cada fila decir …

    INSERT INTO TableName( Colum1) VALUES (1)
    INSERT INTO TableName( Colum1) VALUES (2)
    INSERT INTO TableName( Colum1) VALUES (3)

    En el caso anterior, cada fila de inserción es una declaración por separado y si alguna fila insertar provocó un error sólo que la específica de la instrucción insert se deshará el resto se inserta correctamente.

    Sería agradable si usted incluyó en la respuesta un enlace a la documentación en donde esta limitación de 1000 filas por INSERT .. VALUES está escrito: Constructor con valores de Tabla
    …y el mensaje de error, el cual es: «El número de fila de expresiones de valor en la instrucción INSERT supera el número máximo permitido de 1000 valores de fila.»

    OriginalEl autor M.Ali

Dejar respuesta

Please enter your comment!
Please enter your name here