SQL Server Compact 4.0 的新增功能

本主题介绍 SQL Server Compact 4.0 和以前版本(包括 SQL Server Compact 3.5、SQL Server Compact 3.5 Service Pack 1 (SP1) 和 SQL Server Compact 3.5 Service Pack 2 (SP2))中提供的新功能。

SQL Server Compact 4.0 的新增功能

MicrosoftSQL Server Compact 4.0 具有一组新功能,支持 SQL Server Compact 4.0 可作为 ASP.NET Web 应用程序和网站的数据库的新方案。SQL Server Compact 4.0 的主要功能包括:

  1. 使用 WebMatrix 和 Visual Studio 2010 Service Pack 1 开发 SQL Server Compact 4.0 应用程序

    • 可以使用 Visual Studio 2010 SP1 的 Premium、Ultimate 和 Professional 版本开发用于 SQL Server Compact 4.0 的 ASP.NET Web 应用程序和 Windows 桌面应用程序。可以使用设计器(如服务器资源管理器、查询设计器和 Transact-SQL 编辑器)来浏览数据库。可以使用 ASP.NET Web 应用程序项目系统中的设计器将网页上的控件绑定到 SQL Server Compact 中的数据。

      此外,Microsoft Visual Web Developer 2010 SP1 Express 还支持 SQL Server Compact 4.0 用于 ASP.NET Web 应用程序开发。Visual Studio 2010 SP1 还支持 SQL Server Compact 3.5 和 SQL Server Compact 4.0 的并行应用程序开发。

    • 可以使用 WebMatrix 开发带 SQL Server Compact 4.0 的 ASP.NET Web 应用程序和管理 SQL Server Compact 数据库(包括针对 SQL Server Compact 运行 Transact-SQL 查询)。

    • 还可以使用 WebMatrix 为 SQL Server Compact 4.0 的数据和架构编写脚本,使其迁移到 SQL Server 的更高版本,可以通过一次单击将网站迁移到 SQL Server 的其他版本。

  2. API 增强功能

    • 与 ADO.NET 实体框架 4.0 (.NET Framework 4) 集成

      SQL Server Compact 4.0 支持 ADO.NET 实体框架的代码优先编程模型。此外,在与 ADO.NET 实体框架 4(即随 .NET Framework 4 发布的 ADO.NET 实体框架版本)一起使用时,在 SQL Server Compact 4.0 中也支持具有服务器生成的键(如标识或行 GUID)的列。

      备注

      SQL Server Compact 4.0 版本仅用于随 .NET Framework 4 发布的 ADO.NET 实体框架 4。将 SQL Server Compact 4.0 用于 ADO.NET 实体框架 3.5 SP1(随 .NET Framework 3.5 SP1 发布)将导致错误。

    • DbConnection.GetSchema 的新 API

      SQL Server Compact 4.0 具有一个新 API - System.Data.SqlServerCe.SqlCeConnection.GetSchema(),您可使用该 API 从 SQL Server Compact 数据库文件获取架构。该 API 还可提供对 System.Data.Common.DbConnection.GetSchema 的支持。

    • SqlCeConnectionStringBuilder 的新 API

      新 API - System.Data.SqlServerCe.SqlCeConnectionStringBuilder() 允许开发人员以编程方式创建 SQL Server Compact 4.0 的正确连接字符串,并分析和重新生成现有连接字符串。该 API 还提供对 System.Data.Common.DbConnectionStringBuilder 的支持。

  3. 新的 Transact-SQL 语法

    如果使用带 Order BY 子句的 OFFSET & FETCH 的新 Transact-SQL 语法进行进一步扩展,SQL Server Compact 4.0 支持 Transact-SQL 查询。OFFSET-FETCH 允许用户针对数据库文件编写分页查询并运行它们。有关详细信息,请参阅 ORDER BY 子句 (SQL Server Compact)

  4. ASP.NET Web 应用程序和网站的改进

    • 对 ASP.NET 的支持

      SQL Server Compact 4.0 无需任何特定配置即可支持 ASP.NET。SQL Server Compact 4.0 中不再需要标志 SQLServerCompactEditionUnderWebHosting,已将它删除。

    • 减少虚拟内存

      SQL Server Compact 4.0 中每个 SQL Server Compact 连接使用的虚拟内存减少了。我们可以看到明显的变化:如果应用程序尝试在 SQL Server Compact 3.5 SP2 中同时打开 40 到 50 个连接,将引发“虚拟内存用尽”异常;而使用 SQL Server Compact 4.0 时,应用程序可以轻松打开所需数目的数据库文件连接,只要不超过最大值 256 个连接,就不会用尽虚拟内存。

    • 中等信任

      ASP.NET 应用程序的主要要求是在中等(部分)信任环境下运行,这在 SQL Server Compact 4.0 中受支持。

  5. 更可靠、安全,更易于部署

    • 更高的可靠性

      SQL Server Compact 4.0 已经过测试和认证,可以与 ASP.NET Web 应用程序一起工作,并可以处理初级网站的负载。SQL Server Compact 4.0 在有很多并发连接和创建多个针对数据库的请求的情形中性能很高。

    • 加密算法更新

      SQL Server Compact 4.0 支持 SHA 2 加密算法,该算法对加密的 SQL Server Compact 数据库文件提供更高的安全级别。

      提示

      在 SQL Server Compact 早期版本中支持的算法在 SQL Server Compact 4.0 中受支持仅是为了打开数据库文件以将它们升级到 SQL Server Compact 4.0。因此,当您使用 SQL Server Compact 4.0 打开 SQL Server Compact 3.5 数据库文件时,需要使用 System.Data.SqlServerCe.SqlCeEngine.Upgrade() API 将 SQL Server Compact 3.5 数据库文件升级到 SQL Server Compact 4.0。

    • 安装程序增强功能

      SQL Server Compact 4.0 安装程序得到增强,以确保在 64 位计算机上正确安装 SQL Server Compact 的 x86 和 x64 组件。这确保 SQL Server Compact 4.0 在 64 位计算机上同时支持 WOW64 模式和 64 位本机应用程序,而不会出任何问题。

      • 在 SQL Server Compact 4.0 中,将仅在 32 位计算机上安装 x86 EXE,仅在 64 位计算机上安装 x64 MSI。x64 MSI 将在 64 位计算机上安装 32 位和 64 位 SQL Server Compact 组件。安装行为的这个变化使得不需要在 64 位计算机上安装 x86 MSI 了。

      • 对于 SQL Server Compact 4.0 的专用部署,专用部署的所有二进制文件(32 位和 64 位)位于 %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Privatethe %Program Files (x86)%\Microsoft SQL Server Compact Edition\v4.0\Private 文件夹中。

SQL Server Compact 3.5 Service Pack 2 的新增功能

SQL Server Compact 3.5 Service Pack 2 (SP2) 随 SQL Server 2008 R2 和 Visual Studio 2010 提供。从 SQL Server Compact 3.5 SP2 版本开始,SQL Server Compact 提供以下新增功能:

  • 对 Visual Studio 2010 中的 Transact-SQL 编辑器的支持。您现在可以使用 Transact-SQL 编辑器对 SQL Server Compact 数据库运行自由文本 Transact-SQL 查询。Transact-SQL 编辑器还支持查看和保存 SQL Server Compact 数据库的详细的估计和实际查询显示计划。此前,Transact-SQL 编辑器提供的功能只能通过 SQL Server Management Studio 提供。有关详细信息,请参阅 Visual Studio Transact-SQL 编辑器

  • 对 SQL Server Compact 数据库的更改跟踪的支持。向 System.Data.SqlServerCe 命名空间新添了类和成员,以支持对数据库表进行行级更改跟踪。当对表启用跟踪时,跟踪基础结构将维护有关对该表执行的插入、删除和更新操作的信息。此信息存储在添加到跟踪表的列中以及由跟踪基础结构维护的系统表中。通过使用这些新类,您可以配置、启用和禁用针对表的更改跟踪,还可以访问为表维护的跟踪数据。可以使用更改跟踪在若干情况下提供相关功能。例如,可以为偶尔连接的系统 (OCS) 提供客户端到服务器或客户端到客户端的自定义同步实现;或者,可以使用更改跟踪功能来实现自定义侦听器应用程序。有关详细信息,请参阅生成使用更改跟踪的应用程序 (SQL Server Compact)

  • 新的程序集版本控制支持和目录结构,它们使采用专用部署的 SQL Server Compact 应用程序能够接收修补程序、安全修补程序和关键更新。有关详细信息,请参阅专用部署与集中部署 (SQL Server Compact)

  • 添加了针对 64 位 ClickOnce 部署的支持。有关详细信息,请参阅部署桌面应用程序

  • SQL Server Compact 支持 Windows 7 和 Windows Server 2008 R2。有关所有支持的 Windows 版本的列表,请参阅硬件要求和软件要求

SQL Server Compact 3.5 Service Pack 1 的新增功能

SQL Server Compact 3.5 Service Pack 1 (SP1) 随 SQL Server 2008 和 Visual Studio 2008 SP1 提供。从 SQL Server Compact 3.5 版本开始,SQL Server Compact 提供以下新功能:

  • SQL Server Compact 支持 ADO.NET实体框架。使用 实体框架 可以按域特定的对象和属性的形式处理数据(如客户和客户地址),而无须考虑存储此数据的基础数据库表和列。

  • 对 ADO.NET实体框架 的支持允许您通过直接从开发环境使用 LINQ 表达式和 LINQ 标准查询运算符,根据 实体框架 对象上下文创建灵活的强类型查询。

  • SQL Server Compact 支持数据库级别的区分大小写排序规则。有关详细信息,请参阅使用排序规则 (SQL Server Compact)

  • 使用 SQL Server 2008 中的 SQL Server Management Studio (SSMS),可以管理存储在智能设备或台式计算机上的 SQL Server Compact 数据库。

  • SQL Server Compact 提供了对复制 SQL Server 2008 中的新数据类型(如 date、time、datetime2、datetimeoffset, geography 和 geometry)的支持。SQL Server 2008 中的新数据类型已映射到 nchar、nvarchar、image 等。有关 SQL Server 2008 中的数据类型的详细信息,请参阅 SQL Server 2008 联机丛书文档中的数据类型

  • 在 64 位环境中,SQL Server Compact 可以在本机运行。受影响的 MSI 文件是 SQL Server Compact 64 位运行时 (SSCERuntime-ENU.msi) 和 SQL Server Compact 64 位服务器工具 (SSCEServerTools-ENU.msi)。对 32 位 MSI 的支持保持不变。将 ClickOnce 部署用于其应用程序的开发人员必须同时指定 32 位和 64 位下载 URL。有关详细信息,请参阅管理 64 位数据库应用程序

  • SQL Server Compact 通过使用 Sync Services for ADO.NET 支持在 SQL Server 2000、SQL Server 2005 和 SQL Server 2008 之间进行数据复制。Sync Services for ADO.NET 同时可用于台式机和移动设备。

  • 通过使用合并复制和远程数据访问 (RDA),SQL Server Compact 支持 SQL Server 2005 和 SQL Server 2008 之间的数据复制。

  • SQL Server Compact 包括 SQL Server Compact 和 SQL Server 之间的增强版本兼容性以用于合并复制。

  • 可以从 Microsoft 下载中心下载通过使用 SQL Server Compact 3.5 SP1 配置合并复制和 RDA 的服务器工具。SQL Server Compact 3.5 SP1 服务器工具不能与早期版本的服务器工具并行安装在充当 IIS 服务器的计算机上。SQL Server Compact 3.5 SP1 服务器工具可以在 SQL Server Compact 3.5 和 SQL Server 2005 或 SQL Server 2008 之间复制数据。SQL Server Compact 3.5 SP1 服务器工具还支持在 SQL Server 2005 Compact Edition 或 SQL Server 2005 Mobile Edition 和 SQL Server 2005 或 SQL Server 2008 之间复制数据。

  • SQL Server Compact 支持 Windows Server 2008。有关所有支持的 Windows 版本的列表,请参阅硬件要求和软件要求

SQL Server Compact 3.5 的新增功能

SQL Server Compact 3.5 随 Visual Studio 2008 发布。从 SQL Server Compact 3.5 版本开始,SQL Server Compact 提供以下新功能:

  • SQL Server Compact 实现了 timestamp (rowversion) 数据类型。rowversion 是一种公开自动生成的二进制数字(保证它们在数据库中是唯一的)的数据类型。通常可将其用作创建表行版本戳的机制。

  • 在台式计算机上,SQL Server Compact 支持本地事务范围。

  • 已增强 Visual Studio 2008 中的 SQL Server Compact 表设计器,以提供一个用于在表之间创建主键和外键关系的用户界面。

  • 已扩展 SQL Server Compact 对 transact-SQL 语句的支持,如下所示:

    • FROM 子句中的嵌套查询

    • CROSS APPLY 和 OUTER APPLY

    • CAST

    • TOP

    • SET IDENTITY INSERT

  • SQL Server Compact 支持任何区域设置的 Unicode 字符,包括中文 GB 18030 字符。

  • SQL Server Compact 支持使用 Visual C# 2008 速成版和 Visual Basic 2008 速成版开发桌面应用程序。

  • 在台式计算机上,可以并行支持 SQL Server Compact 版本 3.5 和早期版本 (3.1)。有关与早期版本交互的详细信息,请参阅从早期版本进行升级 (SQL Server Compact)

  • 为支持具有较旧的加密算法和较新的更安全加密的旧操作系统,SQL Server Compact 支持向后兼容的加密模式。有关向后兼容的加密模式的完整列表,请参阅从早期版本进行升级 (SQL Server Compact)

  • SQL Server Compact 支持 LINQ to SQL。LINQ to SQL 是 LINQ 项目的一个组件,它提供了一个运行时基础结构,用于将关系数据作为对象管理,而不放弃查询功能。它将语言集成的查询转换为 Transact-SQL 以供 SQL Server Compact 执行,然后将表格格式的结果再转换为应用程序开发人员所定义的对象。在 LINQ to SQL 中,没有对 SQL Server Compact 的设计器支持。必须将 SqlMetal.exe 实用工具用于 SQL Server Compact。SqlMetal 命令行工具为 .NET Framework 的 LINQ to SQL 组件生成代码和映射。默认情况下,SQLMetal 文件位于 %ProgramFiles%\Microsoft SDKs\Windows\vn.nn\bin。有关详细信息,请参阅 Code Generation in LINQ to SQL(LINQ to SQL 中的代码生成)。SqlMetal 可用于以下方面:

    • 从数据库生成源代码和映射属性或映射文件。

    • 从数据库生成中间数据库标记语言 (.dbml) 文件,用于自定义。

    • 从 .dbml 文件生成代码和映射属性或映射文件。

其他新增功能

SQL Server Compact 4.0 提供以下组件:SSCEVSTools-ENU.msi、SSCEWebTools-ENU.msi、SSCERuntime_x86-ENU.exe 和 SSCERuntime_x64-ENU.exe。

  • Microsoft Visual Studio 2010 SP1 Tools for SQL Server Compact 4.0 (SSCEVSTools-ENU.msi):此文件将安装 Visual Studio 2010 SP1 中设计器支持所需的 SQL Server Compact 设计时组件。设计时组件是用于编写 SQL Server Compact 应用程序的用户界面、对话框和设计时环境。SQL Server Compact 设计时组件将安装在以下目录中:%ProgramFiles%\Microsoft Visual Studio 10\Common7\IDE\。示例安装在 %ProgramFiles%\Microsoft SQL Server Compact Edition\v4.0\Samples 目录下。这些组件绑定到 Visual Studio,不能独立使用。此 .msi 文件也安装 SQL Server Compact 示例和 SQL Server Compact 头文件(用于本机开发)。

  • SQL Server Compact 4.0 运行时 (SSCERuntime_x86-ENU.exe 和 SSCERuntime_x64-ENU.exe):此文件将台式机的 SQL Server Compact 运行时组件安装在中央文件夹 %ProgramFiles%\Microsoft SQL Server Compact Edition\v4.0 中。需要有 SQL Server Compact 台式机运行时组件,才能在 Visual Studio 中开发应用程序和在台式机上运行基于 SQL Server Compact 的应用程序。也可以从网上下载 SSCERuntime-ENU.msi。

  • SQL Server Compact 4.0 Web 工具 (SSCEWebTools-ENU.msi):此文件在全局程序集缓存中安装数据库脚本编写组件。这允许将数据库迁移到更高的 SQL Server SKU(对于 WebMatrix)。此 MSI 只能与 WebMatrix 一起使用。