使用 Altova 工具在 SQL Azure 云环境中处理 XML 数据

在之前的文章中,我们讨论了如何使用 Altova DatabaseSpy 连接到 Microsoft SQL Azure 数据库,并演示了本地数据库与迁移到 SQL Azure 的相同数据库之间的数据库结构比较和内容比较。 在本文中,我们将使用另一种方法将现有表迁移到 SQL Azure,并向您展示一些在云端使用 XML 的技巧。 我们首先在 SQL Azure 中创建了一个新的数据库结构。 然后,我们创建了一个DatabaseSpy 项目,该项目连接到运行 AdventureWorks 示例数据库的本地 SQL Server Express 副本,以及第二个连接到我们新的 SQL Azure 数据库结构。

AdventureWorks 数据库中包含一个名为 JobCandidate 的表,其中包含一些 XML 数据,我们将使用这些数据来构建一个模型,用于管理我们的 SQL Azure XML 内容。

我们可以生成一个用于现有表的 CREATE 语句,将其作为 SQL Azure 版本的参考基础。

我们需要修改这个语句,使其能在我们的 Azure SQL 数据库中执行。除了更改数据库和模式名称之外,我们还会移除对“Employee”表的外部键约束,因为我们的新数据库中没有名为“Employee”的表。此外,Azure SQL 不支持 "CONTENT" 关键字,因此我们也会移除它。

在确认“属性”窗口中,针对修改后的“CREATE”语句,指向的是 SQL Azure 数据库后,我们可以执行该语句。当我们在“在线浏览器辅助”窗口中刷新数据库并展开视图时,我们可以看到新创建的、空的表。

通过比较现有表和新表的数据,我们可以创建一个脚本,将数据迁移到我们在 Azure SQL 云中的新表中。这类似于我们在之前的 SQL Azure 博文中介绍的数据比较方法,但不同之处在于,我们不会直接合并数据,而是会将合并脚本保存下来

我们的第一次尝试运行合并脚本失败了,系统报错,提示SQL Azure无法在IDENTITY_INSERT设置为OFF时向新表中插入数据。我们可以修改合并脚本,添加一行代码来设置IDENTITY_INSERT为ON,然后重新执行:

接下来,我们可以执行一个SELECT查询,以查看成功上传的数据。

“数据库侦察工具”中的“数据检查器”窗口,可以让我们更方便地查看宽列中的内容,非常适合用于检查存储在“新招聘候选人”表中的“简历”列中的XML文档。

使用 XMLSpy 编辑 XML 数据 如果您需要在 SQL Azure 数据库中修改、编辑、更新或验证 XML 数据,Altova XMLSpy 提供了比 DatabaseSpy 更强大的 XML 编辑功能。我们可以通过 XMLSpy 连接到我们的 SQL Azure 数据库,并通过 XMLSpy 数据库查询窗口 执行 SELECT 查询。XMLSpy 允许我们打开任何 XML 行进行直接编辑,并提供高级的 XML 编辑功能。

当然,XMLSpy 的文本视图和网格视图的所有常用功能都可用。

在您完成编辑后,通过选择“XMLSpy”软件中的“文件/保存”选项,可以将修改后的XML文档保存到云端SQL Azure数据库中的“JobCandidate”表格的相应行中。

使用 XQuery 解析 XML 数据 您可以使用 XMLSpy 的 XQuery 编辑器,它内置了对 XQuery 语法和上下文相关的辅助功能,从而构建 XQuery 语句,用于解析您 SQL Azure 数据库中的 XML 数据。以下 XQuery 语句从 XML 简历中提取并返回家庭地址,条件是 JobCandidateID 小于 7。

XQuery 语句可以在“数据库查询”窗口中执行,并且结果会立即在 XMLSpy 中显示,供您进一步处理。

当然,XQuery 的结果也可以在文本视图或表格视图中进行编辑。

您可以通过“数据库查询”窗口或“XML 编辑器”视图来保存查询结果。 亲自体验一下,通过使用 Altova 工具来处理 SQL Azure 云中的 XML 数据,您可以提高多少工作效率 下载免费的30天试用版Altova MissionKit 软件架构师版, 一套集成软件,包含 XMLSpy、DatabaseSpy 以及其他 XML、数据库和 UML 工具。