SSCE может также использоваться как автономная база данных для средств управления личными сведениями и других приложений на поддерживаемых устройствах и настольных компьютерах. Загрузка и развертывание SQL Server Compact Edition, а также разработка для SQL Server Compact Edition являются бесплатными.
Он занимает порядка 2Мб дискового пространства и 5Мб оперативной памяти. Для сравнения — SQL Server 2005 Express Edition (также бесплатный) занимает порядка 200Мб на жестком диске и 80Мб в оперативной памяти при работе.
Для многих разработчиков XML базы данных слишком медленны, а возможности SQL Server Express Edition слишком велики для ведения локальных баз данных (да и занимаемый сервером объем дискового пространства довольно велик). Небольшие размеры, скорость работы, использование привычных наработанных технологий программирования (сервер поддерживает подмножество языка Transact-SQL и ADO.NET — таким образом, разработчику хоть немного знающему эти технологии, не придется переучиваться) и бесплатность делают SSCE идеальным инструментом для разработки локальных баз данных.
Таким образом, SSCE предоставляет разработчикам ADO.NET высокопроизводительную и «секьюрную» альтернативу хранению данных в XML файлах.
SSCE разрабатывался и использовался в течение 6 лет на мобильных устройствах и в составе Compact Framework, а также как средство хранения данных в Media Center PC, Windows Vista и клиенте MSN. До версии 3.1 политика лицензирования не позволяла использовать SSCE на настольных компьютерах. Но теперь все ограничения сняты. Интересно, что ранее SSCE назывался SQL Server Everywhere Edition, но из-за использования "SQL Everywhere» в торговой марке Sybase сервер пришлось переименовать в SQL Server 2005 Compact Edition.
Кратко о возможностях и ограничениях SSCE.
Максимальный размер БД – 4Гб.
Размер столбца BLOB (ntext и image) – 2Гб.
Имя таблицы – 128 символов.
Размер таблицы – 512Мб.
Имя столбца БД – 128 символов.
Столбцов в таблице – 1024.
SSCE поддерживает 128-битное RSA шифрование и паролирование баз данных. Также может синхронизироваться и реплицироваться с SQL Server 2005.
SSCE использует стандартные ограничения SQL: PRIMARY KEY, UNIQUE, и FOREIGN KEY. Для каждого ограничения PRIMARY KEY и UNIQUE, указанных в таблице, в этих столбцах создается индекс. Однако, некоторые типы данных (ntext, image) не могут быть использованы в качестве столбцов первичных ключей, поскольку их нельзя индексировать. Количество ограничений на таблицу — 249.
Возможно использование временной базы данных, в которой хранятся временные и промежуточные данные. Такая БД создается, только если необходимость в этом указывается явным образом и удаляется после отключения от базы данных. Для указания пути к временной БД необходимо добавить свойства temp file directory и temp file max size (в мегабайтах) в строку подключения: "temp file directory = c:TEMP; temp file max size=128;" Замечу, что для временной БД можно задать только уже существующее расположение.
К сожалению, многие возможности SQL Server 2005 не поддерживаются или поддерживаются с ограничениями.
SQL Server 2005 Compact Edition:
- не поддерживает smallmoney, smalldatetime, image, xml, varchar(max), nvarchar(max), varbinary(max), char(n), varchar(n) типы данных.
- nchar(n), nvarchar(n) и varbinary(n) могут содержать до 4, 000 символов, а ntext — 536, 870, 911.
- хранит все строковые данные в Unicode.
- поддерживает несколько одновременных соединений с базой данных, но они все должны быть произведены с одной и той же рабочей станции.
- не поддерживает SQL CLR интеграцию.
- не поддерживает события БД (хотя Microsoft может включить их поддержку позднее).
- поддерживает транзакции, но не ведет лог транзакций.
- поддерживает ТОЛЬКО следующие агрегатные функции: AVG, COUNT, MAX, MIN, SUM.
- поддерживает ТОЛЬКО следующие математические функции: ABS, ACOS, ASIN, ATAN, ATN2, CEILING, COS, COT, DEGREES, EXP, FLOOR, LOG, LOG10, PI, POWER, RADIANS, RAND, ROUND, SIGN, SIN, SQRT, TAN.
- поддерживаются следующие функции работы с датой: DATEADD, DATEDIFF, DATENAME, DATEPART, GETDATE
- поддерживает ТОЛЬКО следующие системные функции: @@IDENTITY, COALESCE, DATALENGTH.
- поддерживаются следующие строковые функции: CHARINDEX, LEN, LOWER, LTRIM, NCHAR, PATINDEX, REPLACE, REPLICATE, RTRIM, SPACE, STR, STUFF, SUBSTRING, UNICODE, UPPER.
- не поддерживает строковые функции для полей типа ntext.
- поддерживает только следующие логические функции: ALL, AND, ANY, BETWEEN, EXISTS, IN, LIKE, NOT, OR, SOME.
- выполнение нескольких команд подряд, разделенных точкой с запятой, не поддерживается.
- не поддерживает множественные результирующие наборы данных, несмотря на то, что SqlCeDataReader содержит метод NextResult.
- не поддерживает директиву SELECT INTO.
- для использования “неправильных имен” необходимо заключать их в двойные кавычки или квадратные скобки.
- для того чтобы изменить свойство столбца IDENTITY, Вы должны удалить и создать заново таблицу.
- роли и привилегии не поддерживаются.
Итого, в сухом осадке имеем неплохой сервер локальных баз данных, особенно актуальный для студентов и «домашних» разработчиков.

Кратко о Microsoft SQL Server Compact Edition
