| Solution | Portability | SQL Dialect | Use Case | |----------|-------------|-------------|-----------| | | Single file .db or .sqlite . No server, no service. Fully portable. | SQLite dialect (NOT T-SQL) | Local apps, embedded, edge devices. | | LiteDB (C# NoSQL-ish) | Single .db file, pure portable. | LINQ / custom | .NET apps needing a document store. | | H2 Database Engine (Java) | Single .jar + database files. | Near ANSI SQL | Cross-platform, in-memory or file-based. | | DuckDB | Single file .db , zero config. | PostgreSQL-like | Analytical queries on large local data. | | Microsoft Access (runtime) | .accdb file – but requires Access Runtime installed. | Jet SQL | Legacy Windows forms. |
SQL Server stores configuration data (server settings, network protocols, authentication modes) in the Windows Registry ( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server ). Portable apps typically avoid the registry.
| Feature Desired | Does LocalDB Provide? | Notes | |----------------|----------------------|-------| | Run from USB drive without install | ❌ No | The engine must be installed on each host PC first | | No registry changes | ❌ No | Registers user-mode instances | | No admin rights | ✅ Yes | Runs under current user | | Move .mdf files between PCs | ✅ Yes | Just copy the database files | | Work offline | ✅ Yes | Fully local | | Use with C#, Python, Node.js | ✅ Yes | Standard SQL Server connection strings | | GUI management (SSMS) | ⚠️ Limited | You can attach to LocalDB from SSMS installed separately |
database file directly via a connection string without pre-attaching it to a server instance. Limitations
It’s worth understanding Microsoft’s position. SQL Server is an enterprise database designed for: