Does it make sense to use SQL Server Compact for a desktop application?
- How much data can it handle?
- Is it possible to use it with multiple users? What are the constraints?
- What happens when database files are broken? Is it possible to programmatically recover or would it be easy to solve the problem remotely?
I certainly would (and do). SQL Compact (SQLCE) has a distinct advantage in some scenarios. Now it’s in no way meant to be a replacement for SQL Server. It doesn’t scale, it isn’t made to run thousands of concurrent connections, it’s not designed for reporting services, etc, etc.
But it has a tiny footprint. Installing is a matter of just copying over DLLs. Backing it up is a simple file copy. And it can be wicked fast for storage and retrieval if you’re using table direct or BCP. Oh, and it’s free. If you just need a local data store for an app, SQL Server is a pain to deploy and configure. SQLCE is simple. Plus it can play in the same sandbox as a full SQL Server as a replication subscriber (which most other small DBs can’t).
Edit: Forgot to answer your specific questions: