For small datasets, this is good, but for anything significant, using the database's native bulk load will be more efficient than INSERT statements.
There was a requirement that the migration didn't blow up the transaction logs on the target DBs. I thought it would be a simple affair but after much testing I had to write a tool to generate a list of all the tables in each source DB, generate format dumping bcp commands for all the tables, then bcp commands to dump the data for each table, then SQL statements to bulk import the data using both files. The MS docs were woefully unhelpful.
[1] Databend: https://docs.databend.com/guides/load-data/load-semistructur...
[2] Snowflake: https://docs.snowflake.com/en/sql-reference/sql/copy-into-ta...
[3] Data Ingestion Benchmark: https://docs.databend.com/guides/benchmark/data-ingest