SQL Server 2005 で XQuery を使って SQL Server 2000 データベースから XML データを照会する方法


概要


この記事では、Microsoft sql server 2005 で XQuery を使用して、Microsoft SQL Server 2000 データベースの XML データのクエリを行う方法について説明します。 SQL server 2005 からデータにクエリを実行する前に、SQL Server 2000 データベースのテキストデータに適切な形式の XML タグを含めることができます。 テスト用のテキストデータに XML タグを含めることができます。また、文字列の解析と比較のために、読みやすくなっています。 SQL Server 2000 データベースに、データの複数の要素を含む長いテキストデータを格納する場合は、XML タグを含めることができます。 たとえば、販売履歴のエントリには、名前、電話番号、アクションアイテム、その他の情報が含まれている場合があります。 Sql server 2000 データベースのデータが SQL Server 2005 に移行された場合は、SQL Server 2005 で XQuery を使用してデータを直接照会できます。この手法を使用すると、SQL Server 2000 を実行しているコンピューターから同じバッチでリレーショナルデータと XML データを読み取ることができます。

詳細情報


次の例は、XQuery を使って SQL Server 2000 データベースの XML データを照会する方法を示しています。注: この例では、次のものを作成していることを前提としています。
  • SQL Server 2000 を実行しているコンピューターの SQL2kSRV という名前のリンクサーバー
  • SQL Server 2000 を実行しているコンピューターで DBSQL2000 という名前のデータベース
XQuery を使って SQL Server 2000 データベースの XML データを照会するには、次の手順を実行します。
  1. SQL Server 2000 データベースに格納するテキストデータに、整形式の XML タグを含めます。
  2. Nvarcharntextなどのテキストデータ型の列にデータを格納します。 これを行うには、SQL Server 2000 クエリアナライザーで次の Transact-sql ステートメントを実行します。
    CREATE TABLE  [DBSQL2000].[tblTextLogs] ( [txtData] [nvarchar] (300))INSERT INTO [DBSQL2000].[tblTextLogs] ([txtData]) VALUES ('<Customer ID="77" Name="David Jaffe"><Lead>The customer called and left a message. He wants to purchase $5 million widgets.</Lead><ActionItem>Call back David Jaffe next week.</ActionItem></Customer>')
  3. SQL Server Management Studio を開き、新しいクエリを作成します。
  4. 次の Transact-sql ステートメントを実行して、 xml データ型の列を含む一時的なテーブルを作成します。
    CREATE TABLE #tblTextToXml (xmlField xml)
  5. 次の Transact-sql ステートメントを実行します。
    INSERT INTO #tblTextToXml  SELECT [txtData] FROM [SQL2kSRV].[DBSQL2000].[dbo].[tblTextLogs]
    このステートメントでは、SQL Server 2000 データベースからテキストデータを取得します。 次に、ステートメントによって一時テーブルのデータが格納されます。注: SQL Server 2005 では、テキストデータがxmlデータ型の列に挿入されると、テキストデータが自動的にxmlデータ型に変換されます。
  6. 次の Transact-sql ステートメントを使用して、XQuery を使用して一時テーブルからデータにクエリを行います。
    SELECT xmlField.query('/Customer') FROM #tblTextToXmlWHERE xmlField.exist('/Customer')  = 1
注: 一時的なテーブルを作成する代わりに、SQL Server 2005 データベースに xml データ型の実際のテーブルを作成できます。

参照情報


詳細については、次の Microsoft Web サイトを参照してください。
Microsoft SQL Server Http://www.microsoft.com/sql/sql Server 2005 ホワイトペーパーhttp://technet.microsoft.com/en-us/sqlserver/bb331753.aspx