Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Desenvolvimento » Banco de dados e SQL » SQL Server 2005 New Features: Os métodos XML - Parte 1 -->
 
Avaliação: | Publicado em: 17/07/2007
SQL Server 2005 New Features: Os métodos XML - Parte 1


O método Nodes

Esse é sem dúvida um dos métodos mais interessantes. Através dele é possível repartir o XML em várias linhas e colunas, transformando sua natureza hierárquica em uma estrutura relacional. No SQL Server 2000, isso já era possível através do comando OPENXML, mas isso incorria em uma sintaxe mais complexa, mais utilização de recursos de memória além de algumas limitações. Segue abaixo uma utilização do método Nodes.

-- Declarando uma variável do tipo de dados XML
-- Teste do método nodes

DECLARE @Pessoa XML
SET @Pessoa =
N'<Pessoa Nome="Paula">
  <Telefone Tipo="Celular" DDD="061" Num="8177-9634"/>
  <Telefone Tipo="Residencial" DDD="061" Num="3210-2370"/>
  <Telefone Tipo="Trabalho" Num="4004-0001"/>
</Pessoa>'

SELECT
 Pessoa.Telefones.value(
'../@Nome','nvarchar(30)')
  As Nome,
 Pessoa.Telefones.value(
'@Tipo','nvarchar(20)')
  As Tipo,
 Pessoa.Telefones.value(
'@DDD','nchar(3)')
  As DDD,
 Pessoa.Telefones.value(
'@Num','nchar(9)')
  As Numero
FROM
 @Pessoa.nodes('/Pessoa/Telefone') Pessoa(Telefones)

Esse método representa uma possível alternativa para uma velha limitação nos módulos de cadastro. Admitindo que uma pessoa possa ter zero ou mais telefones, seria esperado que houvesse duas tabelas (uma para pessoas e outra para telefones). A limitação surge no momento de enviar as informações para o banco de dados. Para gravar o registro “Paula” na tabela de pessoas e adicionalmente seus três telefones (mantendo um contexto transacional), seriam necessárias 4 iterações entre a aplicação e o banco de dados. Como o número de telefones é variável, é praticamente impossível a construção de uma única stored procedure. Com a aplicação do método Nodes, a aplicação pode disparar um documento XML contendo todos os dados necessários para uma stored procedure, e a mesma fazer as inserções necessárias. Essa talvez não seja a melhor alternativa em todas as situações, mas pode contornar as limitações de cadastros que envolvam relacionamentos 1 x N.

Este artigo é a parte 1 de 2 da seguinte série:
  1. SQL Server 2005 New Features: Os métodos XML - Parte 1
  2. SQL Server 2005 New Features: Os métodos XML - Parte 2

Prático! Objetivo! Claro! Linguagem Simples e estruturada, Excelente didática! Material muito bem planejado e blilhantemente elaborado!!!