Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server Maximale Zeilen, die in eine einzelne Insert-Anweisung eingefügt werden können

Die maximale Anzahl von Zeilen, die Sie in eine Anweisung einfügen können, beträgt 1000, wenn Sie INSERT INTO ... VALUES... verwenden d.h.

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

Aber wenn Sie eine SELECT-Anweisung verwenden, um Zeilen in eine Tabelle einzufügen, gibt es dafür keine Begrenzung, so etwas wie ...

INSERT INTO TableName (ColName)
Select Col FROM AnotherTable

Kommen wir nun zu Ihrer zweiten Frage. Was passiert, wenn während einer Einfügung ein Fehler auftritt.

Nun, wenn Sie Zeilen mit dem mehrwertigen Konstrukt

einfügen
INSERT INTO TableName( Colum1)
VALUES (1),
       (2),
       (3)

Wenn im obigen Szenario eine Zeileneinfügung einen Fehler verursacht, wird die gesamte Anweisung rückgängig gemacht und keine der Zeilen wird eingefügt.

Aber wenn Sie Zeilen mit einer separaten Anweisung für jede Zeile einfügen, z. B. ...

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

Im obigen Fall ist jede Zeileneinfügung eine separate Anweisung, und wenn eine Zeileneinfügung einen Fehler verursacht hat, wird nur diese spezifische Einfügungsanweisung rückgängig gemacht, der Rest wird erfolgreich eingefügt.