Следует отметить, что как есть, ни один из случаев не будет работать.
Случай № 1 требует указания соединения.
Случай № 2 требует, чтобы вы заканчивали свои операторы точкой с запятой, чтобы выполнить несколько команд, например так:
string sql = null;
for (int i = 0; i < 10000; i++)
{
sql += "insert into test(id, name) value('" + i + "', '" + i + "');";
}
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
В конечном итоге лучшим способом было бы проверить себя на нескольких тысячах строк. Мое предположение состоит в том, что вариант № 2 будет лучше для производительности, потому что он не только потребует установки только одного SqlCommand
объекта, но и только ударит базу данных один раз.