SqlExpress 与 SqlCompact 区别


    美国微软公司开发的 SQL Server 系列数据库产品中,SQL Server Express 2005(以下简称 SQLExpress)和 SQL Server Compact 3.5(以下简称 SQLCompact),是完全免费产品。
    SQLExpress 是在 SQL Server 2005 Standard 版本的基础上,缩减了对多CPU和内存的支持(只使用一个CPU运算,最高使用内存为1GB),用于小型Web数据库或桌面系统,可无缝升级到 SQL Server 2005 。
    SQLCompact 与 SQLExpress 及以上版本的产品有着本质区别,它不作为服务运行,是 In-process 的数据库引擎,无需额外的安装和维护,因此没有与服务相关的所有功能(如:安全性设置、自定义函数和过程、日志等)。SQLCompact 是专为单机应用(或掌上电脑)设计的,其特点是体积小(由大约 1.4 MB 的 DLL 组成),基于文件方式管理数据库,该数据库文件格式为 sdf (比 SQLExpress 管理的数据库小许多)。

    在 Visual Studio 2008 中,包含有 SQLExpress 和 SQLCompact ,使用 Visual Studio 2008 开发软件时,调用 SQLExpress 及以上版本的数据库引擎的基类是 System.Data.SqlClient, 调用 SQLCompact 的基类是 System.Data.SqlCeServer ,二者调用和管理数据库的子类和方法基本相同,支持的 SQL 语法也多数相同。但使用 SQLCompact 时需要注意以下几点:
    ·不支持存储过程;
    ·不支持 "With ..." 语句(即不支持 row_number 内置函数);
    ·支持 "SELECT TOP (n) ..." 语句,但不能省略括号。
    ·"Order by ..." 语句必须放置到最后,即放置到 Where 条件语句之后。

    比较 SQLExpress 和 SQLCompact 的应用范围,在 Web 网络中的服务器程端使用,无疑是 SQLExpress 占优。在桌面系统中,使用 SQLCompact 替代 SQLExpress 有如下优点:
    1. SQLExpress 软件的安装尺寸较大,安装过程较长,甚至需要重新启动电脑,才能完成初始配置。对于包含 SQLCompact 的软件,软件尺寸只多几兆,软件的安装进程几乎无影响。
    2. SQLExpress 是作为服务运行的,每次启动电脑,都在后台运行服务,占用系统资源较多。
    3. SQLExpress 维护管理交麻烦,如:SQLExpress 意外停止服务时如何重新启动,如何分离被占用的数据库文件等,这些与软件应用无关的问题,与桌面软件简单易用的要求不符!。

    本制作室开发的“利和信息管理系统”软件,是通用文档管理软件,能同时满足桌面应用、及客户/服务器应用的要求,管理本机数据的数据库引擎是 SQLCompact ,同时也支持调用Web网站 SQLExpress,或 SQL Server 2005 数据库。


北京利和软件制作室 
2009-11-24