When you need bulk DELETE
Cleaning test data, removing expired orders before archive, or rolling back a bad import—all need DELETE statements keyed by primary or business IDs. Hand-writing them risks missing a condition; one wrong WHERE can wipe a whole table.
ComTools Excel to SQL builds DELETE scripts from Excel or CSV: one DELETE per row, with required WHERE columns (the tool never emits unconditional table-wide deletes).
Prepare your Excel file
Row 1 is headers; following rows list records to remove.
DELETE example (by OrderId):
| OrderId |
|---|
| ORD-2024-001 |
| ORD-2024-002 |
| ORD-2024-003 |
For composite keys, keep every key column:
| TenantId | OrderId |
|---|---|
| 1 | ORD-001 |
| 1 | ORD-002 |
Steps (DELETE)
- Open Excel to SQL.
- Upload
.xlsx,.xlsm, or.csv; pick the target sheet. - Set statement type to Delete.
- Enter the table name, e.g.
dbo.Orders. - Choose database type (SQL Server, MySQL, PostgreSQL, SQLite, Oracle).
- In the column grid, mark WHERE columns only (e.g.
OrderId). DELETE has no SET columns. - Click Generate, then copy or download the SQL.
Sample output
DELETE FROM dbo.Orders WHERE OrderId = 'ORD-2024-001';
DELETE FROM dbo.Orders WHERE OrderId = 'ORD-2024-002';
DELETE FROM dbo.Orders WHERE OrderId = 'ORD-2024-003';
Composite key example:
DELETE FROM dbo.Orders WHERE TenantId = 1 AND OrderId = 'ORD-001';
Pre-flight safety checklist
DELETE is destructive—follow this order:
| Step | Action |
|---|---|
| 1 | Run on a test database first; verify affected rows |
| 2 | Run a matching SELECT (use Select type in the tool, or SELECT COUNT(*)) |
| 3 | Back up the table or database |
| 4 | Execute in production in batches of 500–1000 |
| 5 | Reconcile remaining data with business expectations |
-- count before delete
SELECT COUNT(*) FROM dbo.Orders
WHERE OrderId IN ('ORD-2024-001', 'ORD-2024-002', 'ORD-2024-003');
If the count does not match your Excel row count, some IDs are missing or conditions are wrong—do not proceed.
Common scenarios
| Scenario | WHERE columns | Notes |
|---|---|---|
| Delete by order ID | OrderId | Mind quotes and case for string IDs |
| Delete by user ID | UserId | Numeric keys without extra quotes |
| Composite key | Multiple WHERE columns | Generates AND |
| Preview first | Select with IN list | See tip below |
Preview with Select + IN
For a single ID column, switch to Select, mark that column as WHERE, and generate WHERE Id IN (...) to verify in the database before switching back to Delete.
Work with INSERT and UPDATE
| Operation | Use case | Guide |
|---|---|---|
| INSERT | New rows | INSERT guide |
| UPDATE | Change columns | UPDATE guide |
| DELETE | Remove by key | This guide |
Typical flow: bad batch inserted → DELETE by batch key with this guide → fix Excel → INSERT again.
Dedup before import to avoid duplicate key failures on INSERT.
Temp tables and soft delete
#Previewtemp tables: Names starting with#can include CREATE/preview helpers—validate ID lists before deleting production rows.- Soft delete: If your app uses
IsDeleted = 1, use the UPDATE guide instead of physical DELETE.
Excel to SQL series
FAQ
Can I generate DELETE without WHERE?
No. At least one WHERE column is required to prevent full-table deletes.
IDs with single quotes?
The tool escapes them as '', same as INSERT/UPDATE.
50k rows?
Up to 50,000 rows per run; split files or execute scripts in chunks for larger jobs.
Single-column CSV of IDs?
Upload with a header like OrderId, mark WHERE, and generate. See the CSV import guide for encoding.