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 2 -->
 
Avaliação: | Publicado em: 02/08/2007
SQL Server 2005 New Features: Os métodos XML - Parte 2


Combinação dos Métodos

Em virtudes de algumas limitações, é preciso informar valores atômicos em instruções do tipo REPLACE VALUE OF (XML DML). Essas limitações impedem que algumas operações de atualização sejam feitas. No cadastro realizado, não é possível alterar o elemento <Curso>Implementando o Exchange 2007</Curso> para <Curso nome="Implementando o Exchange 2007"/> que é a estrutura definida no documento. Para realizar essa alteração, alguns passos adicionais seriam necessários.

DECLARE @nome NVARCHAR(50)
SET @nome = (
 SELECT DadosEmpregado.value(
'(/Matricula/Cursos/Curso[2]/text())[1]',
'nvarchar(50)')
 FROM tblDadosPessoas
 WHERE MATRICULA = '2005R3-021')

Através do método value, o valor do 2º elemento "Curso" é recuperado e atribuído ao valor da variável @nome que é um nvarchar(50).

UPDATE tblDadosPessoas
SET DadosEmpregado.modify('
  insert attribute nome {sql:variable("@nome")}
  into (/Matricula/Cursos/Curso[2])[1]'
)
WHERE MATRICULA = '2005R3-021'

Posteriormente, a instrução INSERT (XML DML) faz a inserção do atributo "nome" no 2º elemento "Curso" e o valor desse atributo será o valor da variável @nome. Observe que para fazer essa inserção foi necessário utilizar a extensão sql:variable descrita no artigo anterior.

UPDATE tblDadosPessoas
SET DadosEmpregado.modify('
  delete (/Matricula/Cursos/Curso[2]/text())[1]'
)
WHERE MATRICULA = '2005R3-021'

Ou

UPDATE tblDadosPessoas
SET DadosEmpregado.modify('
  replace value of (/Matricula/Cursos/Curso[2]/text())[1]
  with ""'
)
WHERE MATRICULA = '2005R3-021'

Agora que o 2º elemento "Curso" já contém um atributo "nome" com o nome do curso, é preciso excluir o valor do elemento. Para isso é possível executar uma instrução de DELETE (XML DML) ou de UPDATE (XML DML). Após a realização dessas operações, a estrutura do elemento "Curso" para a empregada Tânia foi corrigida.

Este artigo é a parte 2 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

Muito bom, agora para quem faz uso do 2005 esta belezinha colegas, so fazer uso, isso que estava faltando para que os usuários do 2000 não sofressem tanto em trabalhos com Strings grandes e terem que quebras a variavel Text em uso de procedures para recebe-las como parametros.... valeu e abraços...