As you can see from another question of mine, generating test data is my theme right now.

At this point, I'm still generating my test data by hand. However, this process always generates small amounts of data (usually five-ten rows) since it is a manual process.

Are there any tools to automate this process? Particularly, I'd like to be able to generate 1mil+ rows.


4 Answers 4


You can use Visual Studio database projects with Data Generator Plans.

A nice video tutorial can be watched here: How Do I: Generate Test Data using Visual Studio Team System Database Edition?

  • I like this since it is the most easily available to me. However, to use these, I'll be forced to move from VS2005 to at least 2008.
    – Richard
    Aug 22, 2011 at 14:37
  • 2
    You really need to download a VS2010 hands-on-lab VM and put a case together for an upgrade. The database tools (DAC packs for 2088R2, joy) are worthy on their own. The full ALM tools, if you can get dev and test on board, revolutionary. Oct 15, 2011 at 20:11
  • @Devart you may post your comment as an answer. It's a valid one.
    – Marian
    Aug 17, 2015 at 9:29

Red Gate SQL Data Generator?

  • 1
    I have used this tool and works very well!
    – jrara
    Aug 19, 2011 at 19:48
  • 2
    Ditto. Having used both VS Data Generator and Red Gate's, Red Gate's is much better but it costs extra! ;) Aug 24, 2011 at 19:00

An excellent resource is of course the Redgate SQL Toolbelt, in particular their Data Generator

SQL Data Generator is a fast, simple tool for generating test data.

Using table and column names, field length, data types and other existing constraints SQL Data Generator immediately provides sensible generators. These can then be customized to meet specific requirements.

Ideal for both testing databases and complying with privacy legislation, SQL Data Generator provides test data fast and simply.


I'll answer this the same way I did when this was asked for mysql :

You're often better off doing this yourself, or the data may be too random, and won't have a similar distribution to what your real data will look like. (eg, indexes are good for truly random data ... not so much when there's a limited number of permutations or some values occurs more than 20% of the time)

I typically use Perl scripts to generate my simulated data, and write it out in tab delim files ... I can then either use that database's bulk importing mechanisms to load it, or I can use another script that inserts the records at a given cadence (eg, insert (x) records every (y) seconds, with a little time jitter inserted)

Not the answer you're looking for? Browse other questions tagged or ask your own question.