The fastest method probably starts an INSERT SQL query with SELECT FROM. I created test data to populate tables from other databases and even the same database several times. But it all depends on the nature and availability of your own data. In my case, I had enough rows of collected data, in which several select / insert routines with a random row selection applied twice to the real data quickly brought decent test data. In some cases, when these tables were uniquely identified, I used intermediate tables and sorted by frequency distributions to exclude things like unusual names (excluded instances in which the number with the group was less than or equal to 2)
In addition, Red Gate actually provides a utility to do just what you ask. It is not free, and I think it is Sql Server-specific, but their tools are top notch. Well worth it. There is also a free trial period.
If you do not want to pay or their utility, you could build your own pretty quickly. What they do is not magic at all. A decent developer should be able to beat out a similar, albeit alpha / hardcoded version of the application, in a day or two ...
source share