0
votes

We have a commercial off the shelf product which used a Access Database. Due to the limitations and corruptions involved in multi user environments we decided to move to SQL Express. However now asit turns our,deployment of SQL Express 2005/2008 is a nightmare. The list of dependencies these depend on just keeps growing. Can anyone recommend of alternative options to SQL Express which is

  1. Easy to Deploy
  2. Has all SQL Express features
  3. Easy to backup
  4. Can be migrated to SQL Server Edition if needed
  5. Has a small footprint

Any help appreciated.

Update: Our current SQL Express Install is done using a 3rd party installer package, and so the end user does not see any SQL Express related install screen. And yes it need to be a single package, click and magically the app appears on the desktop type of install. Our end users are just not savvy enough. From my recent experiences with our deployment,SQL Express inntaller has just too many dependencies. If I was to include all these in my installation it blows up my install size unecessarily.

7
Has all the features of SQL Express, and can be migrated to SQL Server Edition? Sounds like you want SQL Express! :-) Can you tell us what sort of deployment and dependency issues you had? - David Pfeffer
If deployment of SQL Express is a nightmare my first instinct is you must be doing something wrong. - Spencer Ruport
@Spencer: All kidding aside, deployment of express as part of a shrinkwrap product really is a huge headache. - Adam Robinson
@Adam initially I'm sure. But you're setting up a database engine, there's a lot of variables that need to be set correctly. If there's issues I don't believe it's a problem with the software but rather the install script. - Spencer Ruport
@Spencer: Specifying installation options is the least of the concerns. Interacting with the SQL installer from within an MSI package is virtually (if not actually) impossible. While the SQL installer isn't an MSI/Windows installer package (so you can't use it as a prerequisite or as a subpackage), it does us it, preventing you from running it concurrently. - Adam Robinson

7 Answers

5
votes

You're probably not going to find something with the exact same feature set as SQL Express. However, SQLite meets at least 1, 3, and 5, and it's very popular (including with proprietary apps like Mac OS and Skype).

2
votes

This is going to be the problem:

Has all SQL Express features

Really, if you want to succeed, you need to define precisely what you need.

I mean, surely, the access db you've moved from didn't implement all MS SQL express features, did it?

I can write down a huge list of free/open source database products that you could possibly use, but it doesn't make sense if it is not clear what features you do and which you don't need.

2
votes

Virtually all of your requirements are pretty subjective.

  1. How easy to deploy does it need to be? XCopy? Fully self-contained MSI? No external dependencies?
  2. All of them? Can you actually produce a list of features that you need? No other product has exact feature parity with SQL Express. For example, do you really need the Service Broker?
  3. Again, how easy? Do you need a managed interface, or will a procedural SQL command work?
  4. From what perspective? If you're talking about just moving files, then Express is the only option. If you're talking about the ability to import and export data, that's entirely up to you.
2
votes

PostgreSQL or Firebird.

1
votes

Sqlite is an open source embeddable db that's very fast, featured and portable. It allows you to generate databases on your local windows pc and xcopy it over and use it on a remote linux host.

Here are some high-level open source c# sqlite bindings that can run cross-platform on windows/linux using the same database. Check out the live sqlite web service examples (including source) if you're interested.

0
votes

The best option I've found is VistaDB.

It supports (mostly) all 5 of your requirements.

For 1 and 3 - Deployment is purely xcopy based, so extremely easy to deploy and backup (single file DB).

2 and 4 are the trickiest (with any DB), as even SQL Express migration to SQL Server is not completely seamless (although very close). VistaDB can migrate more easily than any other DB I've seen, though, since it uses SQL Server syntax for nearly everything... It supports the "real" SQL Server DB features, too, such as foreign keys, stored procedures, T-SQL etc.

5 - It's a single, small (1,121KB in my version), managed assembly.

The main issue (potentially) here is that it's a 100% managed code base, so if you're not using .NET, disregard this suggestion. If you are using C# or VB.NET, however, VistaDB works very well for your requirements.

0
votes

What dependencies are you referring to? Sure, the Management Studio needs the .NET framework, but that's hardly unreasonable these days.

SQL Express isn't a separate product that can migrate to SQL Server, it is SQL Server, but with some limitations.

I run a small company, and we use SQL Server for our larger customers, who usually already have a licence, and SQL Express (05 or 08) for our smaller ones, who probably won't have a database bigger than 4Gb, which is the main practical limitation.

Deployment is trivial - the installer just works, and migration to SQL Server is no more than a backup and restore, or even as little as installing SQL Server and just attaching the existing database.

Seriously, tell us more about these dependencies - you may be trying to solve the wrong problem. I've personally done lots of SQL Express installs, and I can't think of one that's been troublesome.

Backup is easy - you can use the management studio or roll your own. Small footprint, well how small?