What is the best data quality tool for SQL Server?

The best data quality tool for SQL Server profiles every column, generates tests from that profile instead of making you write T-SQL, monitors freshness, volume, and schema, and runs read-only inside your own network, because most SQL Server sits on premises. DataOps TestGen does all four, and it's free and open source for one connection.

Key points

  • Microsoft discontinued Data Quality Services in SQL Server 2025 and supports it only in SQL Server 2022 and earlier, per Microsoft Learn checked November 2026.
  • Microsoft Purview runs data quality scans on on-premises SQL Server but doesn't profile it, per Microsoft's supported-sources table updated April 2026.
  • DataOps TestGen connects to SQL Server 2019 and later with a read-only SQL login, profiles 55 characteristics per column, and generates tests from 34 test types; SQL Server 2017 is available by request.
  • TestGen runs only SELECT statements and stores computed results in its own database, on a server you host, so SQL Server data stays in your network.
  • Open-source TestGen is free for one user, one connection, and one project; Enterprise is $100 per user per month plus $100 per database connection per month, with no per-table fees.

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

NeedWhy it matters on SQL Server
Data profiling of every columnYou can’t write tests for data you haven’t looked at, and legacy SQL Server schemas are wide
Tests generated from the profileHand-writing T-SQL checks across hundreds of tables doesn’t get finished
Freshness, volume, and schema monitorsA failed SSIS step often leaves a table stale, not empty
Runs inside your networkMuch SQL Server is on premises, and many cloud tools expect to reach it from outside
Read-only accessDBAs approve a SELECT-only login. They push back on anything that writes
A price that fits one teamA three-person data team won’t buy a governance platform to test one database

The options

ToolData profilingGenerated testsMonitorsWhere it runsCost
ConstraintsNoNoNoIn the tableFree
SSIS Data Profiling TaskEight profiles, XML outputNoNoSSISIncluded with SQL Server
Data Quality ServicesKnowledge-base drivenNoNoSQL Server 2022 and earlierDiscontinued in SQL Server 2025
Microsoft PurviewNot for on-premises SQL ServerAI-suggested rulesOne freshness ruleMicrosoft cloudPay-as-you-go processing units
Code-first open source (GX Core, Soda Core)BasicYou write each checkVariesYour runnerFree; paid tiers
DataOps TestGen55 column characteristics34 test typesFreshness, volume, schema, custom metricsYour serverFree 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.

  1. Data profiling. 55 characteristics per column and 32 hygiene detectors: placeholder blanks, dates stored as text, possible PII.
  2. 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.
  3. Monitors. Freshness, volume, and schema monitors learn each table’s pattern and flag what breaks it.
  4. 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.

Frequently asked questions

Short answers to the follow-up questions people ask next.

Does SQL Server have a built-in data quality tool?

Not one that profiles, tests, and monitors. Constraints reject impossible rows at write time, and the SSIS Data Profiling Task computes eight profiles into XML. Data Quality Services did cleansing and matching, but Microsoft discontinued it in SQL Server 2025 and supports it only in SQL Server 2022 and earlier, per Microsoft Learn in November 2026.

Can Microsoft Purview check data quality on SQL Server?

It can run data quality scans on on-premises SQL Server, but Microsoft's supported-sources table, updated April 2026, says it doesn't profile that source. Purview data quality bills by processing unit, and on-premises sources use the Basic tier. You write or accept each rule one at a time rather than having them generated from a profile.

Which SQL Server versions does TestGen support?

SQL Server 2019 and later, on premises or on a VM, plus Azure SQL Database and Azure Synapse Analytics. SQL Server 2017 is available by request. TestGen's text-hash comparison tests need UTF-8 collations, which arrived in SQL Server 2019.

Does TestGen need Windows authentication or sysadmin rights?

Neither. TestGen connects to SQL Server with a SQL login, which is the only method its Access Requirements page lists. The login needs SELECT on the tables you test, and reads information_schema.columns, sys.objects, and sys.partitions, which a database user can read by default.

Try it on your own data

DataOps TestGen is free and open source. Profile a table and generate its tests this afternoon.