我的一位同事最近告诉我,SQL Express和MS Access本质上是一回事;这似乎不是一个准确的说法。我知道您可以将Access转换为SQL DB,可能在幕后它们是相似的,但我假设SQL DB引擎和用于运行access的是不同的。不仅如此,SQL语句的语法等我都知道是不一样的。
我主要是试着理解,这样我就能更好地了解这些版本。
发布于 2011-04-19 00:15:42
嗯,不,不一样。
首先,我需要澄清一些术语。MS Access是一种快速应用程序开发(RAD)工具,它允许您快速构建绑定到关系数据的窗体和报表。它附带了一个基于文件的数据库引擎(Jet/ACE)。
Access RAD工具可用于许多不同的后端数据库(Jet、SQL Server、任何支持ODBC的数据库等)。我不得不假设你的同事是专门评论Jet/ACE的,即MS Access使用的数据库引擎。
我认为Jet/ACE database engine和MS SQL Server Express之间最大的区别是Jet/ACE是基于文件的,而SQL Server Express使用的是客户端/服务器模型。这意味着SQL Server Express需要一个正在运行的服务来提供对数据存储区的访问。在某些情况下,这可能会使部署复杂化。
SQL Server Express实际上只是SQL Server的一个节流版本:最大数据库大小为4 4GB (2008R2为10 4GB),仅使用单个物理CPU,等等。施加这些限制是为了防止大型组织使用免费的Express版本来代替全面的SQL Server安装。其结果是,SQL Server Express提供了一条真正无缝升级到SQL Server的途径。一般来说,它也是一个比Jet/ACE更健壮、功能更全的数据库管理系统。
相似性
由Microsoft开发的
差异
基于
发布于 2011-04-18 22:52:12
我想您的同事想到的是SQL Server CE,它是一个超轻量级的嵌入式数据库,在数据库管理方面仍然远远优于Access。SQL Express甚至无法与Access相提并论而不冒犯前者。
发布于 2011-04-18 23:00:50
下面是两个产品的数据表,因此您可以看到两个数据库之间的差异的一些确凿事实。
访问:http://office.microsoft.com/en-us/access-help/access-specifications-HP005186808.aspx
SQL (Express列在最右列):http://www.microsoft.com/sqlserver/2008/en/us/editions-compare.aspx
我一直读到的评论是,Access对于单用户单一访问数据库的使用是很好的,只要你扩展到其他地方的单个用户。虽然这可能有点“吃力”,但Access在多用户环境中确实做得不好。根据我们的经验,我们有一个客户端忽略并忽略了我们将后端数据库从Access迁移到SQL的请求,并且在许多情况下,我们必须从备份恢复,或者由于损坏而使Access数据库脱机。
它们是两种完全不同的技术,有两个不同的目标市场。数据库引擎确实是不同的,正如您提到的T-SQL与Access SQL不同。
您可以通过创建SSIS包或其他工具将Access数据库“放大”为SQL,但这会将Access架构和数据迁移到真正的SQL数据库。它做的不仅仅是附加Access数据库或类似的东西。
任何时候你需要一个“真正的”数据库,我强烈建议你看看Access上可用的任何SQL版本。
https://stackoverflow.com/questions/5704654
复制相似问题