SQL Server 2005 Everywhere Edition is a new member of the SQL Server family. As with SQL Server 2005 Express, SQL Server Everywhere is a free relational database that's limited to 4GB and designed for small-scale database applications. You can use the ADO.NET programming model to access both databases and use SQL Server Management Studio (SSMS) to manage them. Because SQL Server Express and SQL Server Everywhere are so similar, you might have a difficult time deciding which product to choose. So let's take a look at some of the differences between the products.

The primary difference between SQL Server Express and SQL Server Everywhere is that SQL Server Express is a multiuser database server that runs as a system service--meaning it's not bound to any specific application. SQL Server Express runs outside the application and can provide database services to multiple local or remote applications. In contrast, SQL Server Everywhere is an in-process database that provides relational-database support for the application it's embedded in. In other words, you use SQL Server Everywhere within an application to provide database functionality to only that application.

Another difference lies in the products' heritage. SQL Server Express uses the same core database engine that SQL Server 2005 Enterprise, Workgroup, and Standard Editions use. That's not the case for SQL Server Everywhere; it's based on SQL Server 2005 Mobile Edition. SQL Server Everywhere has a different core database engine, a smaller footprint than SQL Server Express, and is designed to run on mobile devices. It runs as a mobile or desktop application and lacks many of the more powerful database features in SQL Server Express. For example, although SQL Server Everywhere does support referential integrity (by using cascading deletes and updates) and the ability to commit roll-back transactions, it doesn't support more advanced database features such as stored procedures, the XML data type, or CLR integration. For building distributed mobile applications, SQL Server Everywhere, like SQL Server Express, supports data exchange with other members of the SQL Server family by using merge replication.

So, when should you use SQL Server Everywhere and when should you use SQL Server Express? SQL Server Everywhere is the clear choice when you need database support for mobile-device applications, or for single-user applications that require only basic database functionality. SQL Server Express is a better choice for multiuser applications or for applications that need advanced database features such as stored procedures and XML support. You can read more about the differences between SQL Server Everywhere and SQL Server Express in the Microsoft article "SQL Server 2005 Everywhere Edition" at http://www.microsoft.com/sql/ctp_sqleverywhere.mspx. Read more about SQL Server Everywhere's predecessor, SQL Server Mobile, at http://www.microsoft.com/sql/editions/sqlmobile/default.mspx.