Usuário com melhor resposta
AJUDA! Recuperar Dados XML

Pergunta
-
Bom dia.
Estou com uma dificuldade no SQL Server 2005:
Tenho o seguinte texto XML
('<xmlLogAudit><Parameters><id_usuario>-2</id_usuario> <id_sistema>2</id_sistema> </Parameters> </xmlLogAudit>')
Como que eu faço pra recuperar o nome do campo e o valor para serem gravados em outra tabela.
Exemplo: Na tabela eu vou ter duas colunas nm_parametro e vl_parametro,
nm_parametro receberá o "id_usuario"
vl_parametro receberá o "-2"
Se puderem ajudar...
Agradeço desde já!- Editado cristianocsi quarta-feira, 3 de fevereiro de 2010 12:21 nada
- Movido Gustavo Maia Aguiar quarta-feira, 3 de fevereiro de 2010 12:38 (De:SQL Server - Desenvolvimento Geral)
Respostas
-
Bom Dia,
Tenho um artigo interessante sobre esse assunto:
Recuperando o nome dos elementos em um documento XML no SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!914.entrydeclare @xml xml set @xml = '<xmlLogAudit><Parameters> <id_usuario>-2</id_usuario> <id_sistema>2</id_sistema> </Parameters></xmlLogAudit>' -- nm_parametro e vl_parametro -- nm_parametro receberá o "id_usuario" -- vl_parametro receberá o "-2" SELECT node.value(N'fn:local-name(.[1])', N'nvarchar(1000)') AS nm_parametro, CAST(node.query(N'./text()') As VARCHAR(100)) As vl_parametro FROM @xml.nodes(N'//*') T(node) WHERE node.value(N'fn:local-name(.[1])', N'nvarchar(1000)') NOT IN ('xmlLogAudit','Parameters')
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com/blogPiores Práticas – Elaborar triggers preparadas para linhas e não para conjuntos
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!937.entry
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 3 de fevereiro de 2010 12:37
- Marcado como Resposta cristianocsi quarta-feira, 3 de fevereiro de 2010 12:47
Todas as Respostas
-
Bom Dia,
Tenho um artigo interessante sobre esse assunto:
Recuperando o nome dos elementos em um documento XML no SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!914.entrydeclare @xml xml set @xml = '<xmlLogAudit><Parameters> <id_usuario>-2</id_usuario> <id_sistema>2</id_sistema> </Parameters></xmlLogAudit>' -- nm_parametro e vl_parametro -- nm_parametro receberá o "id_usuario" -- vl_parametro receberá o "-2" SELECT node.value(N'fn:local-name(.[1])', N'nvarchar(1000)') AS nm_parametro, CAST(node.query(N'./text()') As VARCHAR(100)) As vl_parametro FROM @xml.nodes(N'//*') T(node) WHERE node.value(N'fn:local-name(.[1])', N'nvarchar(1000)') NOT IN ('xmlLogAudit','Parameters')
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com/blogPiores Práticas – Elaborar triggers preparadas para linhas e não para conjuntos
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!937.entry
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 3 de fevereiro de 2010 12:37
- Marcado como Resposta cristianocsi quarta-feira, 3 de fevereiro de 2010 12:47
-