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


O método Modify

Já foram apresentados métodos (Query, Value, Nodes, etc) que o tipo de dados XML provê para consulta. No entanto, ele estaria incompleto se não disponibilizasse um método para alterar os documentos XML. O método Modify é o método disponibilizado para efetuar alterações (inserções e atualizações) e exclusões em documentos e (ou) fragmentos XML persistidos no banco de dados. Para entender seu funcionamento, é fundamental o conhecimento prévio em XPath já que as expressões de alteração (XML DML) são baseadas em XPath. Para exemplificar a utilização desse método, será utilizada uma tabela contendo dados retirados de um cadastro de Recursos Humanos. Ao término do artigo, existe um anexo com um projeto contendo todos os scripts utilizados nesse artigo. A tabela utilizada consiste na matrícula do usuário e uma descrição XML com seu nome, cursos realizados e cargos ocupados na empresa. Ex:

<?xml version="1.0"?>
 <Matricula>
  <Empregado>Adalberto Gonçalves Silva</Empregado>
  <Cursos Total="2">
   <Curso nome="Novas regras para o Simples Nacional"/>
   <Curso nome="Auditoria contábil para micro e pequenas empresas"/>
  </Cursos>
  <Cargos Total="3">
   <Cargo nome="Assistente Administrativo" salario="1200"/>
   <Cargo nome="Analista Contábil Júnior" salario="2000"/>
   <Cargo nome="Analista Contábil Pleno" salario="2700"/>
  </Cargo>
 </Matricula>
 
Criação da tabela de exemplos

O script abaixo cria a tabela mencionada e a popula com quatro registros
 
CREATE TABLE tblDadosPessoas (MATRICULA CHAR(10), DadosEmpregado XML)

-- Inserção de Registros
INSERT INTO tblDadosPessoas (MATRICULA, DadosEmpregado) VALUES ('2005R1-059',
 '<?xml version="1.0"?>
   <Matricula Numero="2005R1-059">
    <Empregado>Rodnei Alves Filho</Empregado>
    <Cursos Total="1">
     <Curso nome="ITIL Foundations"/>
    </Cursos>
    <Cargos Total="1">
     <Cargo nome="Analista Jr. de Infra-estrutura" salario="1800"/>
    </Cargos>
   </Matricula>')

INSERT INTO tblDadosPessoas (MATRICULA, DadosEmpregado) VALUES ('2002R1-144',
 '<?xml version="1.0"?>
   <Matricula Numero="2002R1-144">
    <Empregado>Jana Pires Souza</Empregado>
    <Cursos Total="4">
     <Curso nome="Gerência de Tecnologia de Informação"/>
     <Curso nome="Implementando práticas de governança corporativa"/>
     <Curso nome="Curso preparatório para gerência de projetos"/>
     <Curso nome="Conhecendo a lei Sarbanes-Oxley"/>
    </Cursos>
    <Cargos Total="4">
     <Cargo nome="Líder de desenvolvimento de desenvolvimento" salario="5000"/>
     <Cargo nome="Gerente de Desenvolvimento de Sistemas" salario="6000"/>
     <Cargo nome="Gerente da Fábrica de Software" salario="6500"/>
     <Cargo nome="Superintendente de tecnologia de informação" salario="8000"/>
    </Cargos>
   </Matricula>')

INSERT INTO tblDadosPessoas (MATRICULA, DadosEmpregado) VALUES ('2007R2-129',
 '<?xml version="1.0"?>
   <Matricula Numero="2007R2-129">
    <Empregado>Cássio Telles Bastos</Empregado>
    <Cursos Total="2">
     <Curso nome="SQL Server 2000 - Administração e Desenvolvimento"/>
     <Curso nome="SQL Server 2005 - Alta Disponibilidade"/>
    </Cursos>
    <Cargos Total="2">
     <Cargo nome="Administrador de Banco de dados Jr." salario="3000"/>
     <Cargo nome="Administrador de Banco de dados Pl." salario="3200"/>
    </Cargos>
   </Matricula>')

-- Esse registro desobedece ao padrão propositalmente
INSERT INTO tblDadosPessoas (MATRICULA, DadosEmpregado) VALUES ('2005R3-021',
 '<?xml version="1.0"?>
   <Matricula Numero="2005R3-021">
    <Empregado>Tânia Mara Ferreira</Empregado>
    <Cursos Total="1">
     <Curso>Implementando o Exchange 2007</Curso>
    </Cursos>
    <Cargos Total="1">
     <Cargo nome="Analista Pl. de Infra-estrutura" salario="3500"/>
    </Cargos>
   </Matricula>'
)

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...