Excel imports shouldn’t feel dangerous.

SqlXL lets you bulk insert or update SQL Server data from Excel — with full validation using your existing database constraints.

If you've ever…

Then you already know the problem. SqlXL was built to fix this — starting with one hard guarantee:

If a single row fails — nothing is applied. Ever.
$ dotnet tool install --global SqlXl

See it in action

# Generate an update template from your table
$ sqlxl update --table dbo.Products
# Open the file in Excel — make your changes # Import — validated against your existing constraints
$ sqlxl update --table dbo.Products --file Products_update.xlsx

How it works

  1. Excel data is loaded into a staging table
  2. SQL Server constraints validate every row
  3. Any failure triggers a full rollback
  4. Clear, row-level errors are returned

Your database stays the source of truth. SqlXL doesn't reimplement validation — it uses the constraints you already have.

What you can do with it

insertBulk insert new rows from Excel updateBulk update existing rows from Excel importAdvanced multi-table workflows driven by feature config in your database exportExport query results to Excel inferGenerate a SQL table schema from a spreadsheet testVerify your end-to-end pipeline demoSpin up a local demo environment — no real database needed llm-contextMachine-readable reference for AI agents — one command to give your assistant full tool fluency

Works with your AI assistant

SqlXL ships a built-in context command that gives any AI assistant a complete, versioned reference for the tool — commands, flags, workflows, gotchas, and the full BulkOpFeature schema.

$ sqlxl llm-context --format json
# or include live database context
$ sqlxl llm-context --format json --include-state