Как вы работаете с SQL Server CE и SQL Server 2008 Express?

Я установил:

  • Visual C # 2008 Express
  • Visual Web Developer 2008 Express
  • Visual Studio 2008
  • SQL Server 2008 экспресс
  • SQL Server Management Studio

В Visual C # 2008 Express я могу «Добавить элемент» и создать «Локальную базу данных» (файл .sdf) или «Базу данных на основе служб» (файл .mdf).

Visual Studio 2008 - это то же самое, что и Visual C # 2008 для приложений, но на веб-сайтах я могу создавать файлы .sdf или .mdf только через проводник баз данных.

Однако в Visual Web Developer 2008 Express я могу «Добавить элемент» и ТОЛЬКО создать «базу данных SQL Server» (файл .mdf). Даже Database Explorer не предлагает создать базу данных SQL CE.

Вопросы:

  • почему расхождение между приложениями, это нормально или что-то пошло не так с моими установками?
  • Я никогда не «устанавливал SQL CE», откуда он взялся и как я могу создать файл .sdf?
  • Как вы ежедневно работаете с ними в проектах, используете ли вы Visual Studio для редактирования баз данных или SQL Server Management Studio?

person Edward Tanguay    schedule 22.01.2009    source источник


Ответы (5)


Я считаю, что только Professional и выше могут создавать базы данных MSSQL CE.

SQL CE установлен со студией 2008 года, я сам был удивлен, увидев это, и не увидел возможности исключить его.

Лично я использую VS 2008 для добавления элементов в базы данных моих проектов. Поскольку он все равно открыт, я просто использую его. Он предоставляет большую часть тех же функций, что и Management Studio. Если я делаю отдельную работу с базой данных, я обычно делаю это в Management studio.

Базы данных CE бесполезны. У них есть ограниченный набор типов и функций. Они не поддерживают представления или хранимые процедуры. В основном они хранят только таблицы; Я не пробовал создавать в них внешние ключи.

Невозможно переименовать таблицы или столбцы. Вы должны создать новую таблицу.

После создания базы данных ее необходимо вручную добавить в проект.

Вы не можете напрямую создать класс LINQ to SQL в VS2008 в базе данных CE. Вам нужно использовать инструмент командной строки sqlmetal (вызываемый из консоли .NET), чтобы создать класс для вас.

У меня были проблемы, когда класс, созданный для базы данных CE, не работал, как класс, созданный для обычной базы данных SQL. Из-за этого я полностью отказался от использования базы данных CE.

Было бы хорошо, если бы существовал надежный способ использования Linq to SQL в базах данных SQLite. SQLite - отличная автономная база данных, не требующая какого-либо внешнего движка.

Извините, у меня нет статистики производительности для базы данных SQL CE.

Я надеюсь, что это в какой-то мере поможет.

Бретт

person Brettski    schedule 26.01.2009
comment
Можете ли вы привести цитату из-за невозможности изменить имена таблиц / столбцов в SQL CE? Похоже, что команда ALTER TABLE существует ... (msdn.microsoft.com/ en-us / library / ms174123.aspx) - person Brian; 26.03.2009
comment
НЕПРАВИЛЬНЫЙ. SQL CE просто не поддерживается веб-сайтами. Фактически, CE явно предотвращает загрузку себя чем-то, работающим под IIS. - person Jonathan Allen; 26.03.2009
comment
SQL Server CE 4.0 поддерживает многопоточность и предназначен для развертывания с WebApp в IIS. blogs.msdn.com/b/sqlservercompact/archive/2010/07/07/ - person Eric Labashosky; 03.08.2010

Хорошо, зарегистрировался сейчас и не уверен, почему получил -1 голос за предыдущий ответ, но будет расширяться.

Web Developer Express 2008 Не создает и не работает с Sql Server CE просто потому, что SQL Server CE не предназначен для работы на веб-сервере.

Когда вы загружаете c # express или vb express. sql server express 2008 предлагается к установке. SQL CE не установлен. если вы пойдете и добавите источник данных, два, которые я знаю, будут там, Microsoft SQL Server Compact 3.5 (поставщик данных .NET Framework для Microsoft SQL Server Compact 3.5) и файл базы данных Microsoft SQL Server (SqlClient), клиент доступа может быть там также.

Следует отметить, что при настройке Express по умолчанию, если вы решите использовать поставщика данных для sql server compact, он потерпит неудачу, даже если это вариант. вам нужно будет загрузить sql server ce отдельно для создания баз данных sdf.

Также версии Express нацелены на другую аудиторию и не имеют такой же настройки пользовательского интерфейса, как у main и sku. Например, Web Express при настройке базы данных даже не предлагает возможности использовать sql server ce. в то время как в VS это выбор из меню данных в основном потому, что VS поддерживает больше, чем просто веб-разработчика.

Теперь вы сказали, что загрузили VS 2008 (не сказали, какую версию, но не имеет значения, поскольку это влияет на стандарт и выше)

При установке по умолчанию для vs 2008 будет установлен сервер Sql ce (и, как указано в предыдущем ответе, 3.1 был с rtm, 3.5 был с sp1). Вы можете выключить его заранее в опциях.

Меня беспокоит то, что вы упомянули, что вы не можете создать базу данных в веб-проектах vs. какой шаблон вы используете. Вы должны иметь возможность создавать элементы базы данных на основе сервера в добавляемом элементе, а также локальные и серверные объекты базы данных на вкладке данных.

так в Лето.

в клиентских экспресс-skus и клиентских проектах вы должны иметь возможность создавать локальную или серверную базу данных из добавления элемента и из вкладки данных.

Поскольку sql CE официально не поддерживается на веб-сервере. в веб-версии для добавления элемента у вас должен быть доступ только для создания серверной базы данных. на экспресс, поскольку это специальный номер SKU. CE не доступен ни на вкладке данных, ни в добавляемом элементе. на vs вы можете создать базу данных CE на вкладке Data. и у вас должен быть доступ для создания базы данных сервера в добавлении элемента.

Студию управления сервером sql не волнует, где находится источник. так что он будет работать со всеми и создавать базу данных.

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

person DouglasH    schedule 02.02.2009
comment
Гораздо более подробный, но не более полезный для простого вопроса. - person dkretz; 03.02.2009

Ключевым моментом в том, почему вы не можете получить доступ к CE из Web Express, является то, что CE не поддерживается на веб-сервере.

Дуглас

person Community    schedule 22.01.2009
comment
Я не знаю, почему вы проголосовали против. CE явно блокирует загрузку IIS в память. - person Jonathan Allen; 26.03.2009

Это нормально. Типы баз данных, поддерживаемые дизайнером Visual Studio, различаются в зависимости от выпуска. Обратите внимание, что любая версия Visual Studio может писать и использовать код, который подключается к любой из этих баз данных. Просто инструменты визуального «мастера», входящие в состав IDE, которые помогут вам в этом, различаются для каждой редакции.

SQL CE - это компактная версия sql server. Он предназначен для использования на портативных устройствах, таких как смартфоны, или в качестве замены Access для локального хранилища данных в настольных приложениях. Он очень портативен: всего 2 библиотеки DLL, которые занимают менее 1 МБ дискового пространства, и, вероятно, были включены по крайней мере в один из ваших пакетов Visual Studio, возможно, во все.

Обычно я выполняю всю работу с базой данных из Management Studio, но это личное предпочтение.

person Joel Coehoorn    schedule 22.01.2009
comment
Нет, проблема в том, что CE не работает на веб-сайтах, поэтому нет смысла предлагать его в версии для веб-разработчиков. - person Jonathan Allen; 26.03.2009
comment
CE наверняка может работать на веб-сайте. Однако, вероятно, использовать его в таком сценарии - не лучшая идея. - person Joel Coehoorn; 26.03.2009

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

SQL CE был установлен вместе со Studio (не могу вспомнить, но я думаю, что 3.1 поставляется с RTM, а 3.5 поставляется с SP1).

Я всегда использую Management Studio для внесения изменений в базу данных (кроме тех, которые выполняются непосредственно в коде).

person ctacke    schedule 22.01.2009
comment
Это было сделано намеренно. Веб-сайты не могут использовать SQL Server CE по замыслу. - person Jonathan Allen; 26.03.2009
comment
Я собираюсь позвонить BS по этому поводу - вы понятия не имеете, о чем говорите. SQL CE 3.5 полностью совместим с настольными компьютерами с настольным клиентом, включая поддержку 64-разрядных версий. Он не знает, подключается ли к нему веб-сайт, и здесь нет дизайна, препятствующего использованию его для веб-сайта. - person ctacke; 27.03.2009