Mit dem MSSQL geht's so auch verdammt schnell:
CREATE TABLE #foo (a int, b int, c int);
DECLARE @tmp TABLE (a int, b int, c int);
INSERT @tmp (a, b, c) VALUES (1,2,3);
INSERT @tmp (a, b, c) VALUES (2,2,3);
INSERT @tmp (a, b, c) VALUES (3,2,3);
INSERT @tmp (a, b, c) VALUES (4,2,3);
-- ...
INSERT #foo (a, b, c) SELECT a, b, c FROM @tmp;
SELECT * FROM #foo;
DROP TABLE #foo;
Mit System.Data.SqlClient.SqlBulkCopy ist es natürlich wesentlich eleganter.