设置帐户、创建服务器、创建至少一个数据库并设置防火墙规则从而可以连接数据库之后,您可以开始使用这个数据源开发应用程序。
与 Windows Azure 数据存储可选方式(例如表、队列或 Blob)不同,当您使用 SQL Azure 作为项目的数据源时,您无需在开发环境中安装任何内容。 如果您使用的是 Visual Studio 2010,您可以直接开始,而无需更多的 SDK、工具或其他任何内容。
尽管很多开发人员选择使用 Windows Azure 作为前端并使用 SQL Azure 作为后端,但这种配置不是必需的。 您可以使用任意的前端客户端,只需具备受支持的连接库即可,例如 ADO.NET 或 ODBC。 这其中包括使用 Java 或 PHP 编写的应用程序。 目前不支持通过 OLE DB 连接到 SQL Azure。
如果您使用 Visual Studio 2010 开发应用程序,您可以利用其中提供的功能,直接从 Visual Studio 服务器资源管理器在所选的 SQL Azure 数据库安装中查看或创建很多类型的对象。 这些对象是表、视图、存储过程、函数和同义词。 您还可以使用这个查看器查看与这些对象相关的数据。 对于很多开发人员来说,使用 Visual Studio 2010 作为主要的工具来查看和管理 SQL Azure 数据就足够了。 图 2 是服务器资源管理器的视图窗口,其中显示了数据库的本地安装和云实例。 您会发现,两个视图中的树节点稍有不同。 例如,云安装中没有程序集节点,因为 SQL Azure 不支持自定义程序集。
图 2 在 Visual Studio 服务器资源管理器中查看数据连接
正如前文所述,另一个可用来处理 SQL Azure 的工具是 SQL Server Management Studio (SSMS) 2008 R2。 与使用 Visual Studio 2010 相比,您使用 SSMS 2008 R2 可以访问更多的 SQL Azure 数据库操作。 这两种工具,我自己都会使用,具体取决于要完成的操作。 SSMS 2008 R2 提供而 Visual Studio 2010 中没有的一个操作例子是使用 T-SQL 脚本创建新的数据库。 另一个例子是它能够轻松地执行索引操作(创建、维护和删除等等)。 图 3 显示了一个例子。
图 3 使用 SQL Server Management Studio 2008 R2 管理 SQL Azure
SQL Server 2008 R2 最新发布的一项功能是数据层应用程序,或者称为 DAC。 DAC pac 对象在一个实体中综合了 SQL Server 或 SQL Azure 数据库架构和对象。 您可以使用 Visual Studio 2010(构建)或 SQL Server 2008 R2 SSMS(提取),从现有的数据库创建 DAC。
如果您希望使用 Visual Studio 2010 处理 DAC,则应首先在 Visual Studio 2010 中选择 SQL Server 数据层应用程序项目类型。 然后在解决方案资源管理器中,右键单击项目名称,单击“导入数据层应用程序”。 系统将打开一个向导,指导您完成导入过程。 如果您使用的是 SSMS,则可以在对象资源管理器中右键单击要使用的数据库,然后单击“任务”,再单击“提取数据层应用程序”以创建 DAC。
生成的 DAC 是一个压缩文件,其中包含多个 T-SQL 和 XML 文件。 您可以右键单击 .dacpac 文件,然后单击“解压缩”来使用这些内容。 SQL Azure 支持删除、部署、提取和注册 DAC pac,但不 支持升级它们。
另一个可用来连接 SQL Azure 的工具是代码名称为“Houston”的工具的最新社区技术预览 (CTP) 版。Houston 是针对 SQL Azure 安装的管理工具,基于 Silverlight 技术,无需安装。 使用 Houston 连接 SQL Azure 安装时,您需要指定数据中心的位置(截止本文发表时,这些数据中心分别位于美国中北部、美国中南部、欧洲北部、欧洲中部、亚太地区和南亚地区)。
Houston 尚处于早期 Beta 版本,目前发布的版本(如图 4 所示)有些像 SSMS。 Houston 支持处理 SQL Azure 数据库安装中的表、视图、查询和存储过程。 您可以从 SQL Azure 实验室网站访问 Houston,地址是 sqlazurelabs.com/houston.aspx。
图 4 使用 Houston 管理 SQL Azure
另一个可用来连接 SQL Azure 数据库的工具是 SQLCMD (msdn.microsoft.com/library/ee336280)。 尽管 SQL Azure 支持 SQLCMD,但并不支持 OSQL 命令行工具。