Maximální počet řádků, které můžete vložit do jednoho příkazu, je 1000 při použití INSERT INTO ... VALUES...
tj.
INSERT INTO TableName( Colum1)
VALUES (1),
(2),
(3),...... upto 1000 rows.
Ale pokud používáte příkaz SELECT pro vkládání řádků do tabulky, neexistuje pro to žádný limit, něco jako...
INSERT INTO TableName (ColName)
Select Col FROM AnotherTable
Nyní k vaší druhé otázce. Co se stane, když během vkládání dojde k chybě.
Pokud vkládáte řádky pomocí konstrukce s více hodnotami
INSERT INTO TableName( Colum1)
VALUES (1),
(2),
(3)
Ve výše uvedeném scénáři, pokud jakékoli vložení řádku způsobí chybu, celý příkaz bude vrácen zpět a žádný z řádků nebude vložen.
Ale pokud jste vkládali řádky se samostatným příkazem pro každý řádek, tj. ...
INSERT INTO TableName( Colum1) VALUES (1)
INSERT INTO TableName( Colum1) VALUES (2)
INSERT INTO TableName( Colum1) VALUES (3)
Ve výše uvedeném případě je každé vložení řádku samostatným příkazem a pokud jakékoli vložení řádku způsobilo chybu, bude vráceno pouze konkrétní příkaz vložení, zbytek bude úspěšně vložen.