---
title: "SQL Azureクラウド上でXMLデータを扱うためのAltovaツール活用方法"
date: "2010-07-12"
categories: 
  - "xquery"
tags: 
  - "altova-xmlspy"
  - "database-tool"
  - "databasespy"
  - "software-tools"
  - "sql-server"
  - "xml-editor"
  - "xmlspy"
  - "xquery"
description: Altova社のDatabaseSpyやXMLSpyといったツールを活用して、SQL AzureにおけるXMLデータの効率的な管理方法について解説します。データ移行、編集、クエリといった様々な手法について説明します。
---
Status: #blog

Tags:  #altova-xmlspy #database-tool #databasespy #software-tools #sql-server #xml-editor #xmlspy #xquery

Categories: [xpath+xquery](/blog/ja/category/xpathxquery.md)
# SQL Azureクラウド上でXMLデータを扱うためのAltovaツール活用方法

以前の投稿で、私たちは～について議論しました [Altova DatabaseSpyを使用して、Microsoft SQL Azureデータベースに接続する方法](https://www.altova.com/blog/2010/07/connecting-databasespy-to-sql-azure.html) そして、ローカルデータベースと、それをSQL Azureに移行した同じデータベース間のデータベーススキーマ比較とデータ内容比較を実証しました。今回の記事では、既存のテーブルをSQL Azureに移行する別の方法を紹介し、クラウド上でXMLを活用するためのいくつかのテクニックをご紹介します。まず、SQL Azure上に新しいデータベーススキーマを作成しました。次に、 [DatabaseSpy プロジェクト](https://www.altova.com/ja/databasespy/database-projects.html) ローカル環境で動作しているSQL Server Expressのサンプルデータベース（AdventureWorks）に接続し、さらに、新たに構築したSQL Azureのスキーマにも接続されています。 

[![データベース監視ツール Project のヘルプウィンドウ](https://lh3.ggpht.com/_REdrfeVqYdU/TDssD2aUxUI/AAAAAAAAAL4/m1k4DFnOmUk/AzureXML01_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Project helper window")](http://lh4.ggpht.com/_REdrfeVqYdU/TDssDYHP9dI/AAAAAAAAAL0/Su9HjQ6mxG4/s1600-h/AzureXML01%5B4%5D.gif) 

AdventureWorksデータベースには、JobCandidateというテーブルがあり、このテーブルにはXMLデータが含まれています。このXMLデータは、SQL Azureで使用するXMLコンテンツのモデル作成に使用します。 

[![DatabaseSpyのオンラインブラウザウィンドウに表示される、AdventureWorksデータベースのJobCandidateテーブル](https://lh3.ggpht.com/_REdrfeVqYdU/TDssEmRxTCI/AAAAAAAAAMA/XoaMxpC3mFc/AzureXML02_thumb%5B3%5D.gif?imgmax=800 "AdventureWorks JobCandidate table in the DatabaseSpy Online Browser window")](http://lh3.ggpht.com/_REdrfeVqYdU/TDssEeZqVbI/AAAAAAAAAL8/ACDHhYF2vrY/s1600-h/AzureXML02%5B7%5D.gif) 

既存のテーブルに対して、SQL Azure版を作成するための基礎となるCREATE文を生成することができます。 

[![既存の「JobCandidate」テーブルに対するCREATE文](https://lh3.ggpht.com/_REdrfeVqYdU/TDssFD0TAkI/AAAAAAAAAMI/HggxD6WMltU/AzureXML03_thumb%5B2%5D.gif?imgmax=800 "CREATE statement for the existing JobCandidate table")](http://lh4.ggpht.com/_REdrfeVqYdU/TDssE3BRRDI/AAAAAAAAAME/9_1gFQ_WY3c/s1600-h/AzureXML03%5B4%5D.gif) 

この記述を、当社のSQL Azureデータベースで実行できるように修正する必要があります。データベース名とスキーマ名を変更するだけでなく、新しいデータベースに「Employee」という名前のテーブルが存在しないため、Employeeテーブルへの外部キー制約を削除します。また、[SQL AzureはCONTENTキーワードをサポートしていないため、それも削除します](http://msdn.microsoft.com/en-us/library/ee336281.aspx) 

[![データベースのSQLエディタウィンドウで、CREATE文を修正します](https://lh6.ggpht.com/_REdrfeVqYdU/TDssF2JnhpI/AAAAAAAAAMQ/e4H62EHURno/AzureXML04_thumb%5B2%5D.gif?imgmax=800 "Modifying the CREATE statement in a DatabaseSpy SQL Editor window")](http://lh5.ggpht.com/_REdrfeVqYdU/TDssFhvzNGI/AAAAAAAAAMM/2n2dd-eigyg/s1600-h/AzureXML04%5B4%5D.gif) 

修正されたCREATE文のプロパティウィンドウがSQL Azureデータベースを指していることを確認した後、その文を実行できます。データベースを更新し、オンラインブラウザヘルパーウィンドウで表示を展開すると、新しい空のテーブルが表示されます。 

[![データベース内の新しいテーブルが、DatabaseSpyオンラインブラウザウィンドウに表示されます](https://lh3.ggpht.com/_REdrfeVqYdU/TDssGugtpAI/AAAAAAAAAMY/BO5iQ8SryaA/AzureXML05_thumb%5B2%5D.gif?imgmax=800 "New table viewed in the DatabaseSpy Online Browser window")](http://lh3.ggpht.com/_REdrfeVqYdU/TDssGSKOlzI/AAAAAAAAAMU/Y8Ip3bTZ6OU/s1600-h/AzureXML05%5B4%5D.gif) 

既存のテーブルと新しいテーブルのデータ比較を行うことで、SQL Azureクラウド上に新しいテーブルにデータを移行するためのスクリプトを作成できます。これは、～に似ています [SQL Azureに関する以前の記事でご紹介した、データ比較について](https://www.altova.com/blog/2010/07/connecting-databasespy-to-sql-azure.html), ただし、データを直接統合する代わりに、統合処理を行うスクリプトを保存します。

[![DatabaseSpyの「データのマージ」ダイアログ](https://lh3.ggpht.com/_REdrfeVqYdU/TDssHWwqTaI/AAAAAAAAAMg/e1oZHzy7x2E/AzureXML06_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Merge Data dialog")](http://lh3.ggpht.com/_REdrfeVqYdU/TDssHJsbkYI/AAAAAAAAAMc/z-ffuGYIhxA/s1600-h/AzureXML06%5B4%5D.gif) 

最初のマージスクリプトの実行は失敗し、エラーメッセージが表示されました。その内容は、SQL AzureがIDENTITY_INSERTがOFFになっている場合、新しいテーブルに値を挿入できないというものでした。この問題を解決するために、マージスクリプトに「SET IDENTITY_INSERT ON」という行を追加し、再度実行することができます 

[![データベースSpyのSQLエディタウィンドウで表示されている、データ統合スクリプト](https://lh5.ggpht.com/_REdrfeVqYdU/TDssIUMkL5I/AAAAAAAAAMo/etCK1Qr0GdA/AzureXML07_thumb%5B2%5D.gif?imgmax=800 "Merge data script viewed in a DatabaseSpy SQL Editor window")](http://lh4.ggpht.com/_REdrfeVqYdU/TDssHlBKXOI/AAAAAAAAAMk/dHlCNTaS1po/s1600-h/AzureXML07%5B4%5D.gif) 

次に、SELECTクエリを実行して、正常にアップロードされたデータを確認することができます。 

[![DatabaseSpyで、クエリの選択と結果の表示を行います](https://lh4.ggpht.com/_REdrfeVqYdU/TDssJuaavxI/AAAAAAAAAMw/mHOLI4gHW2g/AzureXML08_thumb%5B2%5D.gif?imgmax=800 "Select query and Results viewed in DatabaseSpy")](http://lh5.ggpht.com/_REdrfeVqYdU/TDssJbu8M4I/AAAAAAAAAMs/8eZ3avCrjms/s1600-h/AzureXML08%5B4%5D.gif) 

DatabaseSpyのデータインスペクタウィンドウを使用すると、広範囲にわたる列の内容をより簡単に確認できます。これは、新しい「JobCandidate」テーブルの「Resume」列に格納されているXMLドキュメントを扱う場合に特に便利です。 

[![データベース監視ツール Data Inspector のウィンドウ](https://lh6.ggpht.com/_REdrfeVqYdU/TDssKVVdcnI/AAAAAAAAAM4/X9lKbVekCMg/AzureXML09_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Data Inspector window")](http://lh5.ggpht.com/_REdrfeVqYdU/TDssJ2Lak8I/AAAAAAAAAM0/dGMjr437D4w/s1600-h/AzureXML09%5B4%5D.gif) 

**XMLSpyを使用したXMLデータの編集** SQL Azureデータベース内のXMLデータを修正、編集、更新、または検証する必要がある場合、[Altova XMLSpy](https://www.altova.com/ja/xml-editor/)は、DatabaseSpyよりも高度なXML編集機能を提供します。XMLSpyからSQL Azureデータベースに接続し、[XMLSpyのデータベースクエリウィンドウ](https://www.altova.com/ja/xmlspy/database-xml.html)からSELECTクエリを実行できます。XMLSpyを使用すると、任意のXMLレコードを直接編集でき、高度なXML編集機能を利用できます。

[![XMLSpyのデータベースクエリ機能を使用すると、SQL Azureクラウド上のXMLデータを表示できます](https://lh3.ggpht.com/_REdrfeVqYdU/TDssLlYR3fI/AAAAAAAAANA/YcI5j9Ka4dg/AzureXML10_thumb%5B2%5D.gif?imgmax=800 "XMLSpy Database Query view of XML data in the SQL Azure cloud")](http://lh4.ggpht.com/_REdrfeVqYdU/TDssKld6cKI/AAAAAAAAAM8/PYbJaV5DOuA/s1600-h/AzureXML10%5B4%5D.gif) 

もちろん、XMLSpyのテキスト表示機能やグリッド表示機能など、これまでおなじみのすべての機能が利用可能です。 

[![XMLSpy: SQL Azureクラウド上のXMLデータをテキスト形式で表示します](https://lh6.ggpht.com/_REdrfeVqYdU/TDssMbC90PI/AAAAAAAAANI/9KBahBuL-14/AzureXML11_thumb%5B2%5D.gif?imgmax=800 "XMLSpy Text view of XML data in the SQL Azure cloud")](http://lh3.ggpht.com/_REdrfeVqYdU/TDssMK-TO1I/AAAAAAAAANE/L4f2m0KuAc0/s1600-h/AzureXML11%5B4%5D.gif) 

[![XMLSpyにおける、SQL Azureクラウド上に保存されたXMLデータのグリッド表示](https://lh4.ggpht.com/_REdrfeVqYdU/TDssNHtkC5I/AAAAAAAAANQ/rIdY9_dxz0c/AzureXML12_thumb%5B2%5D.gif?imgmax=800 "XMLSpy Grid view of XML data inthe SQL Azure cloud")](http://lh3.ggpht.com/_REdrfeVqYdU/TDssMiPlQtI/AAAAAAAAANM/DqK59yQWPtQ/s1600-h/AzureXML12%5B4%5D.gif) 

編集が完了したら、XMLSpyの「ファイル」/「保存」メニューオプションを使用することで、修正されたXMLドキュメントが、クラウド上のSQL Azureデータベースにある「JobCandidate」テーブルの該当行に保存されます。

[![XMLSpyの「ファイル」/「保存」メニューオプションを使用すると、XMLデータをSQL Azureクラウドに保存できます](https://lh4.ggpht.com/_REdrfeVqYdU/TDssNlI2VII/AAAAAAAAANY/LQZ-NHz48TE/AzureXML13_thumb%5B2%5D.gif?imgmax=800 "XMLSpy File / Save menu option saves XML data to the SQL Azure cloud")](http://lh6.ggpht.com/_REdrfeVqYdU/TDssNWuNvCI/AAAAAAAAANU/KY6tdkkJ-wc/s1600-h/AzureXML13%5B4%5D.gif) 

**XQueryによるXMLデータの解析** XMLSpyの[XQueryエディタ](https://www.altova.com/ja/xmlspy/xquery-editor.html)を使用すると、XQueryの構文やコンテキストに応じた入力支援機能が組み込まれているため、SQL Azureデータベース内のXMLデータを解析するXQuery文を簡単に作成できます。以下に示すXQuery文は、JobCandidateIDが7より小さいXML形式の履歴書から、自宅住所を抽出して返します。 

[![XMLSpyのXQueryエディタは、SQL Azure上のXMLデータに対応しています ](https://lh4.ggpht.com/_REdrfeVqYdU/TDssOsFWR2I/AAAAAAAAANg/znKFG7mDqm4/AzureXML14_thumb%5B2%5D.gif?imgmax=800 "XMLSpy XQuery editor for XML data in SQL Azure ")](http://lh6.ggpht.com/_REdrfeVqYdU/TDssOEXShdI/AAAAAAAAANc/PWoGe2ZL8dI/s1600-h/AzureXML14%5B4%5D.gif) 

XQueryの記述は、データベースクエリウィンドウで実行でき、その結果はXMLSpy上ですぐに確認し、作業に利用することができます。 

[![XMLSpyのデータベースクエリウィンドウにおけるXQuery文と結果](https://lh4.ggpht.com/_REdrfeVqYdU/TDssPUwP8oI/AAAAAAAAANo/XS8KMTciZPk/AzureXML15_thumb%5B2%5D.gif?imgmax=800 "XQuery statement and results inthe XMLSpy Database Query window")](http://lh5.ggpht.com/_REdrfeVqYdU/TDssO25KcBI/AAAAAAAAANk/TZB0OmZ1Ss0/s1600-h/AzureXML15%5B4%5D.gif) 

もちろん、XQuery の結果は、テキスト表示またはグリッド表示のどちらでも編集できます。 

[![XMLSpyのテキスト表示でXQueryの結果を表示](https://lh3.ggpht.com/_REdrfeVqYdU/TDssP7YsgqI/AAAAAAAAANw/egPoq6aQ2e0/AzureXML16_thumb%5B2%5D.gif?imgmax=800 "XQuery result in XMLSpy Text view")](http://lh5.ggpht.com/_REdrfeVqYdU/TDssPoUbWRI/AAAAAAAAANs/fZU5rG-51IA/s1600-h/AzureXML16%5B4%5D.gif) 

[![XMLSpyのグリッド表示におけるXQueryの結果](https://lh4.ggpht.com/_REdrfeVqYdU/TDssQ5BJBrI/AAAAAAAAAN4/RKXallP0rDM/AzureXML17_thumb%5B2%5D.gif?imgmax=800 "XQuery result in XMLSpy Grid view")](http://lh6.ggpht.com/_REdrfeVqYdU/TDssQXEN4DI/AAAAAAAAAN0/tpRx1Mlabho/s1600-h/AzureXML17%5B4%5D.gif) 

データベースクエリの結果は、データベースクエリウィンドウまたはXMLエディタのいずれかから保存できます。Altovaのツールを使用して、SQL Azureクラウド上でXMLデータを扱うことで、どれだけ効率的に作業できるか、ぜひご自身で体験してみてください。そのためには、[Altova MissionKit for Software Architects](https://www.altova.com/ja/missionkit/software-architects.html)の[30日間の無料トライアル版](https://www.altova.com/ja/download-trial/)をダウンロードしてください。この統合スイートには、XMLSpy、DatabaseSpy、およびその他のXML、データベース、UMLツールが含まれています。
