Import profiles
functionalSave an import's column mapping and options as a named, reusable profile per table.
If you import the same file every week, such as a vendor CSV, you don't have to map its columns again each time. The Import / Export wizard can save its setup as a profile for the target table and apply it the next time. A profile stores:
- the delimiter, the header-row setting, the Excel sheet, and the null token
- the column mapping (renamed and skipped columns) and the type overrides
- whether to create a new table or load an existing one, and whether to use
BULK INSERTon SQL Server - the source column names the mapping was saved against
- the name pattern of the file it was saved from, with dates and numbers ignored (so
vendor_2026-09-28.csvis stored asvendor_#.csv)
Profiles belong to one target: the engine, the saved connection, the database, the schema, and the table. The Profiles row in the wizard lists every profile for the current database as name — schema.table, so two profiles with the same name on different tables are easy to tell apart. Type a name and click Save. If a profile for this table already has that name, it is updated. Pick a profile from the list to apply it; applying also fills in its schema and table. Rename and Delete work on the selected profile. Profiles need a saved connection; a wizard opened without one can't save or list them.

Default profile
Click Default to make the selected profile the default for its table. Each table can have one default. Click Default again to clear it. Once a file is loaded or clipboard text is pasted, SQLly applies a default automatically when:
- the target schema and table match the default's table, whether they were filled in from the file name or you type them afterwards; or
- the file name matches the pattern a default on this connection and database was saved from, such as next week's
vendor_2026-10-05.csvfor avendor_#.csvprofile; or - for clipboard text and other files, the header columns are exactly the ones a default was saved against.
Applying a default switches the target to the default's table. If more than one default matches the file, none is applied and you pick one from the list. A default is applied once per loaded file, so edits you make afterwards are not overwritten.
When the file changes
SQLly never applies a mapping to columns it no longer fits. If the new file's columns
differ from the ones the profile was saved against, the mapping and type overrides are
matched by column name, ignoring case. A column that is new in the file gets an inferred
type; it is imported under its own name when the profile creates the table, and skipped
(-) when the profile loads an existing table, which may not have that column.
The warning under the Profiles row lists skipped new columns so you can map them, and names
any column the profile mapped that is gone. The same warning covers options this target
can't use: a BULK INSERT profile on another engine falls back to INSERT
statements, and a sheet that's missing from the workbook is reported.
Profiles are saved in import-profiles.json in SQLly's settings folder. They
contain no data and no credentials. If that file can't be read, the wizard says so and
refuses to save over it until you fix or move it. They need the desktop app, because the browser
version can't read local files to import.