您如何使用 SQL Server CE 和 SQL Server 2008 Express?
Posted
技术标签:
【中文标题】您如何使用 SQL Server CE 和 SQL Server 2008 Express?【英文标题】:How do you work with SQL Server CE and SQL Server 2008 Express? 【发布时间】:2009-01-22 16:53:52 【问题描述】:我已经安装了:
Visual C# 2008 Express Visual Web Developer 2008 速成版 Visual Studio 2008 SQL Server 2008 速成版 SQL Server 管理工作室在 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?【问题讨论】:
【参考方案1】:我相信只有 Professional 及以上版本可以创建 MSSQL CE 数据库。
SQL CE 是随 2008 studio 安装的,我自己看到也很惊讶,没有看到排除的选项。
我个人使用 VS 2008 将项目添加到我的项目数据库中。因为它无论如何都是开放的,所以我只是使用它。它提供与 Management Studio 相同的大部分功能。如果我在做单独的数据库工作,我通常在 Management Studio 中做。
CE 数据库非常没用。它们具有有限的类型和功能子集。它们不支持视图或存储过程。基本上他们只存储表格;我没有尝试在其中创建外键。
无法重命名表或列。您必须创建一个新表。
创建数据库后,必须手动将其添加到项目中。
您不能在 CE 数据库上直接在 VS2008 中创建 LINQ to SQL 类。您需要使用命令行工具 sqlmetal(从 .NET 控制台调用)为您创建类。
我遇到过为 CE 数据库创建的类不像为常规 SQL 数据库构建的类那样工作的问题。因此,我放弃了一起使用 CE 数据库。
如果有可靠的方法在SQLite 数据库上使用 Linq to SQL,那就太好了。 SQLite 是一个很棒的独立数据库,不需要任何类型的外部引擎。
抱歉,我没有任何 SQL CE 数据库的性能统计信息。
我希望这会有所帮助。
布雷特
【讨论】:
您能否提供无法更改 SQL CE 中的表/列名称的引用?看起来存在 ALTER TABLE 命令...(msdn.microsoft.com/en-us/library/ms174123.aspx) 错误。网站根本不支持 SQL CE。事实上,CE 会明确地阻止自己被 IIS 下运行的东西加载。 SQL Server CE 4.0 确实支持多线程,并且旨在与 WebApp 一起部署到 IIS 中。 blogs.msdn.com/b/sqlservercompact/archive/2010/07/07/…【参考方案2】:好的,现在注册,不知道为什么对以前的答案投了 -1 票,但会扩大。
Web Developer Express 2008 不创建或使用 Sql Server CE 仅仅是因为 SQL Server CE 不是为在 Web 服务器上工作而设计的。
当你加载 c# express 或 vb express。提供安装sql server express 2008。未安装 SQL CE。如果你去添加一个我知道的两个数据源,Microsoft SQL Server Compact 3.5(Microsoft SQL Server Compact 3.5 的.NET Framework Data Provider)和Microsoft SQL Server Database File(SqlClient),访问客户端可能在那里也。
应该注意默认的 Express 设置,如果您选择使用 sql server compact 的数据提供程序,即使它是一个选项,它也会失败。您必须单独下载 sql server ce 才能创建 sdf 数据库。
此外,Express 版本针对不同的受众,并且没有与 main vs sku 相同的 ui 设置。例如,数据库设置中的 Web express 甚至不提供使用 sql server ce 的选择。而在 VS 中,它是从数据菜单中选择的,主要是因为 VS 支持的不仅仅是 Web 开发人员。
现在你说你加载了 VS 2008(没有说什么版本但没关系,因为这会影响标准及更高版本)
vs 2008 的默认安装将安装 Sql server ce(如之前的回答所述,3.1 与 rtm,3.5 与 sp1)。你可以提前关闭它的选项。
我担心的一个问题是您提到您无法在 vs on web 项目中创建数据库。您使用的是哪个模板。您应该能够在添加项中创建基于服务器的数据库项,并在数据选项卡中创建本地和服务器数据库对象。
夏天也是这样。
在基于客户端的 express skus 和基于客户端的项目上,您应该能够从添加项目和数据选项卡创建本地或基于服务器的数据库。
因为 sql CE 在 Web 服务器上不受官方支持。在添加项目的网络 skus 上,您应该只能访问创建基于服务器的数据库。在快递上,因为它是专用的 sku CE 不是数据选项卡或添加项目中的选项。在 vs 上,您可以从“数据”选项卡创建 CE 数据库。并且您应该有权在添加项中创建服务器数据库。
sql server management studio 并不关心源在哪里。因此它将与所有人一起使用并创建数据库。
我使用列出的所有选项只是取决于我当时在哪里或在哪里。如前所述,桌面上的 CE 主要是一个缓存数据库,非常适合离线数据库支持。但确实有其局限性,此外确实需要更好的集成。在创建或使用支持数据库后,我主要使用管理工作室。
【讨论】:
对于一个简单的问题,要详细得多,但没有多大用处。【参考方案3】:Web express 无法访问 CE 的关键在于 Web 服务器不支持 CE。
道格拉斯
【讨论】:
我不知道你为什么投了反对票。 CE 明确阻止 IIS 将其加载到内存中。【参考方案4】:这是正常的。 Visual Studio 设计器支持的数据库类型因版本而异。请注意,任何版本的 Visual Studio 都可以编写和使用连接到任何这些数据库的代码。只是 IDE 中包含的可视化“向导”工具可以引导您完成每个版本。
SQL CE 是 sql server 的精简版。它旨在用于智能手机等便携式设备或作为桌面应用程序中本地数据存储的 Access 替代品。它非常便携:只有 2 个 dll 占用不到 1Mb 的磁盘空间,并且可能包含在至少一个 Visual Studio 包中,可能全部包含在其中。
我通常在 Management Studio 中完成所有数据库工作,但这是个人喜好。
【讨论】:
不,问题是 CE 不能在网站下运行,因此在“Web Developer”版本中提供它是没有意义的。 CE 当然可以在网站上运行。不过,在这种情况下使用它可能不是一个好主意。【参考方案5】:差异很奇怪,但由于 SQL CE 是一个插件项目,很可能是团队没有测试所有可能的场景,并且一些应用程序根本没有获得他们需要知道的信息在那里。我并不是说出了什么问题——这可能只是 SQL CE 团队从未测试过的场景。
SQL CE 是随 Studio 一起安装的(暂时想不起来,但我认为 3.1 随 RTM 提供,3.5 随 SP1 提供)。
我总是使用 Management Studio 进行数据库修改(直接在代码中完成的除外)。
【讨论】:
这是故意的。网站设计无法使用 SQL Server CE。 我要打电话给 BS - 你不知道你在说什么。 SQL CE 3.5 与桌面客户端完全兼容,包括 64 位支持。它不“知道”一个网站是否连接到它,并且这里没有排除将它用于网站的“设计”。以上是关于您如何使用 SQL Server CE 和 SQL Server 2008 Express?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查 SQL Server CE 3.5 中是不是存在表
如何在 Visual Studio 2012 中查看 SQL Server CE 系统表
如何从 C# 代码将 SQL Server CE 迁移到 SQL Server 2012 Express
SQL Server 2008 到 SQL Server CE (Windows Phone 7)
从 SQL Server Express 导入 SQL Server CE
使用 Visual Studio 2012 和 SQL Server Management Studio 2012 运行 SQL Server CE 4 查询