SQL Server Express与MS Access

sca*_*cci 21 sql-server ms-access sql-server-express

我最近一起工作的一位同事告诉我,SQL Express和MS Access基本上是一回事; 这似乎不是一个准确的陈述.我知道你可以将Access转换为SQL DB,也许它们是相似的,但我认为SQL DB引擎和用于运行访问的内容是不一样的.不仅如此,我还知道SQL语句的语法等等.

我主要是想了解,以便我更了解版本.

mwo*_*e02 47

嗯,不,不一样.

首先,我需要澄清一些术语.MS Access是一种快速应用程序开发(RAD)工具,允许您快速构建绑定到关系数据的表单和报表.它带有基于文件的数据库引擎(Jet/ACE).

访问RAD工具可以与许多不同的后端数据库(Jet,SQL Server,任何支持ODBC的数据库等)一起使用.我必须假设你的同事专门评论Jet/ACE,即MS Access使用的数据库引擎.

我认为Jet/ACE数据库引擎MS SQL Server Express之间最大的区别是Jet/ACE是基于文件的,SQL Server Express使用客户端/服务器模型.这意味着SQL Server Express需要运行服务才能提供对数据存储的访问.在某些情况下,这会使部署复杂化.

SQL Server Express实际上只是SQL Server的一个限制版本:最大数据库大小为4GB(2008R2中为10GB),仅使用单个物理CPU等.这些限制是为了防止大型组织使用免费的Express版本代替完整的SQL Server安装.这样做的结果是SQL Server Express提供了一个真正无缝的SQL Server升级路径.它(一般来说)也是一个比Jet/ACE更强大和功能齐全的数据库管理系统.

相似

  • 关系数据库管理系统
  • 由微软撰写

差异

  • MS Access
    • 基于文件
    • 免费可分发运行时(2007或更高版本)
    • RAD工具(表单/报表设计器)
    • 使用Jet SQL
    • 最大文件大小2GB
  • SQL Server Express
    • 客户/服务器模型
    • 自由
    • 没有RAD工具
    • 使用Transact-SQL
    • 最大数据库大小4GB(SSE R2为10GB),最多一个物理CPU

  • 值得注意的是,SQL Server允许您创建触发器和存储过程,而Jet/ACE则不允许.MS Access(作为RAD工具)实际上并不是为编辑或执行存储过程而设计的,尽管您可以使用ADO(ActiveX数据对象)在VBA代码中对它们进行操作. (5认同)
  • 虽然我没有机会自己使用它们,但Access 2010引入了"[数据宏]"(http://blogs.office.com/b/microsoft-access/archive/2009/08/13/access-2010- data-macros-similar-to-triggers.aspx),"它类似于SQL Server中的触发器. (2认同)