Переход от использования SQL Server Express к SQL Server Compact

до сих пор я использовал SQL Server Express в своем настольном приложении, хотя обычно сервер используется только одним приложением, одним пользователем, на одной машине. Это всегда казалось мне немного глупым, так как полный сервер довольно тяжелый.

затем я узнал, что есть что-то под названием SQL Server Compact. Дело в том, что мое заявление уже довольно большое. Поэтому мой вопрос заключается в том, что если бы я хотел перейти на SQL Server Compact, какой изменения в моем коде мы говорим о (используя C#)?

в основном мне интересно, могу ли я получить доступ к компактной версии таким же образом, как я могу получить доступ к Express one, который использует ADO.NET и указывая на localhostsqlexpress. Итак, можно ли создать другой экземпляр с компакт-диском и просто указать мое приложение на это, или оно используется совершенно по-другому?

4 ответов


для автономного настольного продукта это, безусловно, легкий вариант для рассмотрения над SQL Express.

однако есть различия между ними, чтобы быть в курсе других, чем просто строки подключения. Например, SQL CE не поддерживает хранимые процедуры, пользовательские функции и триггеры. Кроме того, он не поддерживает полный спектр типов данных, которые выражают поддержку. На техническом уровне он также работает в процессе с вашим приложением.

другой считается, что, хотя SSMS будет работать с базами данных SQL CE, она не так полнофункциональна, как с SQL Express. Однако есть целый ряд хороших инструментов для заполнения этих пробелов. Взгляните на блог Эрика Дженсена для хорошего обзора.

все SQL Server Compact

также проверьте его инструмент для миграции баз данных SQL Express в SQL Compact:

как перенести / уменьшить размер базы данных SQL Server на SQL Server Компактный 4.0 (и 3,5)

наконец, взгляните на этот вопрос SO для получения дополнительной информации между двумя продуктами:

каковы ограничения для SQL Server Compact? (Или - как выбрать базу данных для использования на платформах MS?)


Я недавно работал с ним, кстати, то, что я знаю об их использовании, - это то, что SQL Express имеет сервер для подключения, и Compact-это файл sdf, поэтому первое, что вам нужно будет изменить, это строка подключения к нему.

после этого изменения больше нет тяжелых изменений, которые нужно сделать, я помню, compact имеет почти все инструкции сервера express, поэтому это не может быть большой проблемой.

посмотреть в документации Microsoft для более информация, или Википедия.

посмотреть вы.


Я бы проголосовал против SQL CE:

  1. Это вид, что может быть проблемой при переносе.
  2. недавно мы сделали что-то подобное, что вы описали, и оказали огромное влияние на производительность при переключении с SQL Server Express на SQL Server Compact Edition.

мои рекомендации:

  1. использовать SQLite (что мы сделали для проекта, о котором я упоминал-это было много более производительный, чем SQL CE в нашем случае) - или -
  2. использовать VistaDB (что я делал в других проектах; не так эффективно, как SQL Server Express, но все же достаточно)

обе базы данных могут быть развернуты XCOPY, как и SQL Server Compact Edition.


SQL CE имеет то же ограничение размера, ЧТО И Express, поэтому вы должны быть хорошими.

Что касается перемещения между ними, я нашел этой для перемещения между базами данных express и compact 3.5. Тогда, я думаю, вам нужно только изменить свой строк подключения (вместо того, чтобы указывать на хост/экземпляр, вы указываете на преобразованный файл). Есть разные особенности между ними, однако, поэтому вам, возможно, придется изменить свою схему в исходная база данных для преобразования проходят гладко.