Il numero massimo di righe che puoi inserire in un'istruzione è 1000 quando usi INSERT INTO ... VALUES...
cioè
INSERT INTO TableName( Colum1)
VALUES (1),
(2),
(3),...... upto 1000 rows.
Ma se stai usando un'istruzione SELECT per inserire righe in una tabella, non c'è limite per questo, qualcosa come...
INSERT INTO TableName (ColName)
Select Col FROM AnotherTable
Veniamo ora alla tua seconda domanda. Cosa succede quando si verifica un errore durante un inserimento.
Bene, se stai inserendo righe usando il costrutto multivalore
INSERT INTO TableName( Colum1)
VALUES (1),
(2),
(3)
Nello scenario precedente, se l'inserimento di una riga provoca un errore, verrà eseguito il rollback dell'intera istruzione e nessuna delle righe verrà inserita.
Ma se stavi inserendo righe con un'istruzione separata per ogni riga, ad esempio ...
INSERT INTO TableName( Colum1) VALUES (1)
INSERT INTO TableName( Colum1) VALUES (2)
INSERT INTO TableName( Colum1) VALUES (3)
Nel caso precedente, ogni inserimento di riga è un'istruzione separata e se un inserimento di riga ha causato un errore solo quella specifica istruzione di inserimento verrà ripristinata, il resto verrà inserito correttamente.