Максималният брой редове, които можете да вмъкнете в един оператор, е 1000, когато използвате INSERT INTO ... VALUES...
т.е.
INSERT INTO TableName( Colum1)
VALUES (1),
(2),
(3),...... upto 1000 rows.
Но ако използвате оператор SELECT за вмъкване на редове в таблица, няма ограничение за това, нещо като...
INSERT INTO TableName (ColName)
Select Col FROM AnotherTable
Сега стигаме до втория ви въпрос. Какво се случва, когато възникне грешка по време на вмъкване.
Добре, ако вмъквате редове с помощта на многостойностна конструкция
INSERT INTO TableName( Colum1)
VALUES (1),
(2),
(3)
В горния сценарий, ако всяко вмъкване на ред причини грешка, целият оператор ще бъде върнат назад и нито един от редовете няма да бъде вмъкнат.
Но ако вмъквате редове с отделен оператор за всеки ред, т.е. ...
INSERT INTO TableName( Colum1) VALUES (1)
INSERT INTO TableName( Colum1) VALUES (2)
INSERT INTO TableName( Colum1) VALUES (3)
В горния случай всяко вмъкване на ред е отделен оператор и ако някое вмъкване на ред причини грешка, само този конкретен оператор за вмъкване ще бъде върнат обратно, останалите ще бъдат успешно вмъкнати.