---
title: "Utilização das ferramentas Altova para trabalhar com dados XML na nuvem SQL Azure"
date: "2010-07-12"
categories: 
  - "xquery"
tags: 
  - "altova-xmlspy"
  - "database-tool"
  - "databasespy"
  - "software-tools"
  - "sql-server"
  - "xml-editor"
  - "xmlspy"
  - "xquery"
description: Explore como gerir eficientemente dados XML no SQL Azure utilizando ferramentas da Altova, como o DatabaseSpy e o XMLSpy, abordando métodos para migração, edição e consulta.
---
Status: #blog

Tags:  #altova-xmlspy #database-tool #databasespy #software-tools #sql-server #xml-editor #xmlspy #xquery

Categories: [xpath+xquery](/blog/pt/category/xpathxquery.md)
# Utilização das ferramentas Altova para trabalhar com dados XML na nuvem SQL Azure

Num artigo anterior, discutimos como [conectar a bases de dados Microsoft SQL Azure com o Altova DatabaseSpy](https://www.altova.com/blog/2010/07/connecting-databasespy-to-sql-azure.html) e demonstramos a comparação de esquemas de bases de dados e a comparação de conteúdo entre uma base de dados local e a mesma base de dados migrada para o SQL Azure. Neste artigo, utilizaremos um método diferente para migrar uma tabela existente para o SQL Azure e mostraremos algumas dicas que pode usar com XML na nuvem. Começámos por criar um novo esquema de base de dados no SQL Azure. Em seguida, criámos um [projeto DatabaseSpy](https://www.altova.com/pt/databasespy/database-projects.html) com uma ligação a uma cópia local do SQL Server Express que executa a base de dados de exemplo AdventureWorks, e uma segunda ligação ao nosso novo esquema SQL Azure. 

[![Janela de ajuda do projeto DatabaseSpy](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) 

A base de dados AdventureWorks contém uma tabela chamada "JobCandidate" que contém alguns dados XML, os quais utilizaremos para criar um modelo para o conteúdo XML do nosso SQL Azure. 

[![A tabela "JobCandidate" da base de dados AdventureWorks, visualizada na janela do navegador online DatabaseSpy](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) 

Podemos gerar uma instrução CREATE para a tabela existente, que poderá ser utilizada como base para a versão SQL Azure. 

[![Instrução CREATE para a tabela existente "JobCandidate"](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) 

Precisamos modificar esta instrução para que seja executada na nossa base de dados SQL Azure. Além de alterar os nomes da base de dados e do esquema, vamos remover a restrição de chave estrangeira para a tabela "Employee", uma vez que a nossa nova base de dados não contém uma tabela com esse nome. Além disso, [o SQL Azure não suporta a palavra-chave CONTENT,](http://msdn.microsoft.com/en-us/library/ee336281.aspx) por isso também vamos removê-la. 

[![Modificar a instrução CREATE numa janela do editor SQL do DatabaseSpy](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) 

Depois de verificar que a janela de Propriedades para a instrução CREATE modificada aponta para a base de dados SQL Azure, podemos executar a instrução. Quando atualizamos a base de dados e expandimos a nossa visualização na janela auxiliar do Navegador Online, podemos ver a nova tabela vazia. 

[![Nova tabela visualizada na janela do navegador online do 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) 

A comparação de dados entre a tabela existente e a nova permitirá criar um script para migrar os dados para a nossa nova tabela na nuvem SQL Azure. Isto é semelhante à [comparação de dados que descrevemos na nossa publicação anterior sobre SQL Azure](https://www.altova.com/blog/2010/07/connecting-databasespy-to-sql-azure.html), exceto que, em vez de mesclar os dados diretamente, iremos guardar o script de mesclagem.

[![Diálogo "Mesclar Dados" do 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) 

A nossa primeira tentativa de executar o script de mesclagem falhou, exibindo uma mensagem de erro que indica que o SQL Azure não consegue inserir valores na nova tabela quando a opção IDENTITY_INSERT está definida como DESATIVADA. Podemos adicionar uma linha ao script de mesclagem para definir IDENTITY_INSERT como ATIVADO e executar o script novamente: 

[![Script de mesclagem de dados visualizado numa janela do editor SQL do DatabaseSpy](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) 

Em seguida, podemos executar uma consulta SELECT para visualizar os dados que foram carregados com sucesso. 

[![Selecionar consulta e visualizar resultados no 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) 

A janela "Data Inspector" do DatabaseSpy permite-nos examinar mais facilmente o conteúdo de uma coluna, sendo ideal para analisar documentos XML armazenados na coluna "Resume" da nova tabela "JobCandidate". 

[![Janela do Inspetor de Dados do DatabaseSpy](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) 

**Edição de dados XML com o XMLSpy** Se precisar rever, editar, atualizar ou validar dados XML numa base de dados SQL Azure, o [Altova XMLSpy](https://www.altova.com/pt/xml-editor/) oferece funcionalidades de edição de XML mais robustas do que o DatabaseSpy. Podemos conectar-nos à nossa base de dados SQL Azure a partir do XMLSpy e executar uma consulta SELECT a partir da janela [Consulta de Base de Dados do XMLSpy](https://www.altova.com/pt/xmlspy/database-xml.html). O XMLSpy permite-nos abrir qualquer linha XML para edição direta, com acesso a funcionalidades avançadas de edição de XML.

[![Visualização de dados XML no ambiente de nuvem SQL Azure, utilizando o XMLSpy para consultas a bases de dados](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) 

Claro que todas as funcionalidades habituais da visualização de texto e da visualização em tabela do XMLSpy estão disponíveis. 

[![Visualização de texto dos dados XML no ambiente de nuvem SQL Azure, utilizando o XMLSpy](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) 

[![Visualização em grade de dados XML no ambiente de computação em nuvem SQL Azure, utilizando o XMLSpy](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) 

Após concluir as suas alterações, a opção "Ficheiro / Guardar" do XMLSpy salva o documento XML atualizado na mesma linha da tabela "JobCandidate" no banco de dados SQL Azure na nuvem.

[![A opção "Ficheiro / Guardar" do XMLSpy permite guardar os dados XML na plataforma de nuvem 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) 

**Análise de dados XML com XQuery** Também pode utilizar o XMLSpy [Editor de XQuery](https://www.altova.com/pt/xmlspy/xquery-editor.html), Com o seu conhecimento integrado da sintaxe XQuery e com ferramentas de auxílio à escrita sensíveis ao contexto, permite criar instruções XQuery que processam os dados XML na sua base de dados SQL Azure. A instrução XQuery abaixo extrai e devolve os endereços de residência dos currículos XML onde o identificador do candidato (JobCandidateID) é inferior a 7. 

[![Editor XQuery do XMLSpy para dados XML no SQL Azure ](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) 

A instrução XQuery pode ser executada na janela de consulta de base de dados, e os resultados ficam imediatamente disponíveis para serem utilizados no XMLSpy. 

[![Declaração XQuery e resultados na janela de consulta de base de dados do XMLSpy](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) 

Claro que o resultado da consulta XQuery também pode ser editado na visualização de texto ou na visualização de tabela. 

[![Resultado da consulta XQuery na visualização de texto do XMLSpy](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) 

[![Resultado da consulta XQuery exibido na grelha do XMLSpy](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) 

Pode guardar o resultado da consulta tanto na janela de Consulta à Base de Dados como na visualização do Editor XML. Descubra por si mesmo o quão produtivo pode ser ao utilizar as ferramentas Altova para trabalhar com dados XML na nuvem SQL Azure – [descarregue uma versão de avaliação gratuita de 30 dias](https://www.altova.com/pt/download-trial/) do [Altova MissionKit for Software Architects](https://www.altova.com/pt/missionkit/software-architects.html), um conjunto integrado que inclui o XMLSpy, o DatabaseSpy e outras ferramentas XML, de bases de dados e UML.
