Most SQL Server data quality problems aren’t impossible rows. Constraints already stop those. They’re plausible rows that are wrong: a status code that changed meaning, a load that brought half the usual volume, a customer key with no customer. Picking a tool means picking how those get found.
What to look for
| Need | Why it matters on SQL Server |
|---|---|
| Data profiling of every column | You can’t write tests for data you haven’t looked at, and legacy SQL Server schemas are wide |
| Tests generated from the profile | Hand-writing T-SQL checks across hundreds of tables doesn’t get finished |
| Freshness, volume, and schema monitors | A failed SSIS step often leaves a table stale, not empty |
| Runs inside your network | Much SQL Server is on premises, and many cloud tools expect to reach it from outside |
| Read-only access | DBAs approve a SELECT-only login. They push back on anything that writes |
| A price that fits one team | A three-person data team won’t buy a governance platform to test one database |
The options
| Tool | Data profiling | Generated tests | Monitors | Where it runs | Cost |
|---|---|---|---|---|---|
| Constraints | No | No | No | In the table | Free |
| SSIS Data Profiling Task | Eight profiles, XML output | No | No | SSIS | Included with SQL Server |
| Data Quality Services | Knowledge-base driven | No | No | SQL Server 2022 and earlier | Discontinued in SQL Server 2025 |
| Microsoft Purview | Not for on-premises SQL Server | AI-suggested rules | One freshness rule | Microsoft cloud | Pay-as-you-go processing units |
| Code-first open source (GX Core, Soda Core) | Basic | You write each check | Varies | Your runner | Free; paid tiers |
| DataOps TestGen | 55 column characteristics | 34 test types | Freshness, volume, schema, custom metrics | Your server | Free for one connection |
Sources: SQL Server 2025 discontinued features and Purview’s supported sources, both checked November 3, 2026. Soda lists MS SQL Server among its data sources, as checked for our Azure tool comparison in October 2026. The nineteen Microsoft features post maps everything Microsoft ships.
The honest split: if you have a few critical tables and engineers who like writing checks, a code-first tool works. If you have a whole database and nobody with time to write the checks, you want them generated.
How DataOps TestGen does it
TestGen connects with a SQL login that needs only SELECT on the tables you test, per its Access Requirements. It never runs INSERT, UPDATE, DELETE, CREATE, ALTER, or DROP.
- Data profiling. 55 characteristics per column and 32 hygiene detectors: placeholder blanks, dates stored as text, possible PII.
- Generated tests. Test generation picks from 34 test types and sets thresholds from the profile. You add rules only you know from 19 business-rule and custom SQL types.
- Monitors. Freshness, volume, and schema monitors learn each table’s pattern and flag what breaks it.
- Scorecards. Each table group gets a quality score on the dashboard.
Every query runs as T-SQL inside SQL Server. TestGen itself runs on a server you choose, on Windows, Linux, or macOS, so nothing goes to a DataKitchen service.
Versions: SQL Server 2019 and later; 2017 by request. The SQL Server setup answer covers grants, collation quirks, and a walkthrough.
Price
Open source is free under Apache 2.0 for one user, one connection, and one project, with unlimited tables. Enterprise is $100 per user per month plus $100 per database connection per month, with no per-table fees. Enterprise adds team access, security, and support.
Start with the SQL Server install page, or the Microsoft stack page if you also run Azure SQL or Fabric.