benchdogGet the tools
ToolsSQL Data Filler
SQL Server and Azure SQL

Benchdog SQL Data Filler

Realistic test data that keeps your keys and constraints.

VS Code, desktop and command line. Windows, Mac and Linux. One licence covers all three.

Fill SQL Server and Azure SQL tables with realistic names, emails, addresses, dates and amounts that fit each column. Foreign keys, unique values and simple check constraints hold, and the same seed makes the same rows.

Data that fits every column

Tick the tables and how many rows each gets, and Data Filler works out the rest. Each column is matched by its name and type: emails for Email, cities for City, money for UnitPrice. Name gets a person in a Customer table and a company in a Supplier table.

Each column is matched to its name and type, with the reason shown.

Keys and constraints kept

Every foreign key points to a real row, because parents are filled before children. Unique keys never repeat, and simple check constraints, such as a price above zero, a list of statuses or a start date on or before an end date, are read and kept.

Foreign keys point at real rows, unique values never repeat, check constraints hold.

Names and emails that match

A person's name, email and address in the same row belong together, so the email matches the name beside it. Names, addresses and phone numbers can be made in 18 languages and regions, from English (UK) to German, French and Japanese.

Preview the rows before anything is written.

Your own values, when needed

Take charge of the columns that matter. Choose from more than 50 generators, or set your own: a number or date range, a list of values, a pattern like [A-Z]{3}-[0-9]{4}, a SQL query, or a column from a CSV file. Empty % sets how many rows leave it NULL.

A list, a pattern, a range or a file, when the defaults are not enough.

Preview before anything changes

Check the data first. Preview Rows shows the first 50 rows a fill would add to a table, the same rows the fill and the script hold. Planning, previewing and saving a script only read, so nothing changes until you choose Fill and confirm.

Preview Rows shows what a fill adds. Nothing is written.

One transaction, or a script

Fill adds every row in one transaction, so it all goes in or none of it does, with an optional copy-only backup first on SQL Server. Or save the fill as a T-SQL script to review and run in SSMS, sqlcmd or Azure Data Studio.

It asks first, offers a backup, and runs in one transaction.

Same seed, same rows

Get test data you can count on. Every random choice starts from the seed, so the same seed makes the same rows every time, on every computer. Each column has its own seeded generator, so adding a column leaves the values in the other columns as they were.

Seed and language decide the rows, so a fill can be repeated.

Save it, run it anywhere

Set a fill up once and repeat it. Save it as a .datafiller.json project file and run it again from VS Code, the desktop app or the benchdog command line. VS Code checks it as you edit, and it never holds a password.

Project files get IntelliSense, problems and an Open Fill link.