Starter kit
The Cobalt database
Every quest runs against a real SQL Server database seeded with the defects from the story: duplicate loads, split payments, timezone drift, NULLs, and orphaned legacy rows.
Setup
- Install SQL Server Developer Edition, Express, or use the Azure SQL free tier.
- Open SSMS, Azure Data Studio, or VS Code with the MSSQL extension.
- Run the scripts in order:
01_schema.sql,02_seed.sql,03_grading-harness.sql. - Run the verification queries below. If the counts match, you are ready for Day 1.
Verification
USE CobaltFiles;
SELECT COUNT(*) AS Orders FROM sales.Orders; -- 4,200
SELECT COUNT(*) AS Customers FROM core.Customers; -- 425 (400 people + 25 duplicates)
SELECT COUNT(*) AS Payments FROM sales.Payments; -- 5,040
SELECT COUNT(*) AS LegacyRows FROM staging.LegacyOrderDump; -- 500
SELECT * FROM reporting.LegacyRevenue; -- the report that starts the mystery
Expected row counts
| Table | Rows | Why it matters |
|---|---|---|
| core.Stores | 13 | 12 real stores plus test store S999 |
| core.Employees | 49 | 48 real people plus ghost employee 999 |
| core.Customers | 425 | 400 people plus 25 duplicate rows |
| core.Products | 30 | One malformed SKU for the JSON lesson |
| sales.Orders | 4,200 | 3,000 clean plus 1,200 duplicates |
| sales.OrderLines | 12,600 | Three lines per order |
| sales.Payments | 5,040 | 840 split-payment orders |
| sales.Returns | 300 | Un-netted in the legacy report |
| staging.LegacyOrderDump | 500 | Four date formats, 41 unmatched emails |
No SQL Server? You can still read every lesson and pass every checkpoint on this site.
The quest boxes save your SQL to your profile, but they cannot execute it — the site is intentionally
lightweight and does not run a database server.