que tengo una tabla como ésta (simplificado):generar estructurado de documentos (XML) a partir de datos de las tablas jerárquicas (T-SQL)
ID | Name | Parent
---------------------------------
1 | IND | NULL
2 | INS | 5
3 | CON | NULL
4 | AUT | 1
5 | FIN | NULL
6 | PHA | 1
7 | CFIN | 5
8 | CMRKT | 7
DDL:
CREATE TABLE [dbo].[tblIndustryCodes](
[IdIndustry] [int] IDENTITY(1,1) NOT NULL,
[IndustryCode] [nvarchar](5) NULL,
[IndustryName] [nvarchar](50) NULL,
[ParentId] [int] NULL,
CONSTRAINT [PK_tblIndustryCodes] PRIMARY KEY CLUSTERED ( [IdIndustry] ASC))
partes movibles:
INSERT INTO [tblIndustryCodes]
([IndustryCode]
,[IndustryName]
,[ParentId])
VALUES
('IND','Industry',NULL),
('PHARM','Pharmacy',1),
('FIN','Finance',NULL),
('CFIN','Corporate Finance',3),
('CMRKT','Capital Markets',4)
Y me gustaría generar un archivo xml a partir de él, que está estructurado de acuerdo con las ID padre
como esto (simplificado)
<IND>
<AUT>
<PHA>
<CON>
<FIN>
<CFIN>
<CMRKT>
creo que es hecho un poco tal vez con un poco de recursividad o algo así, pero no sé cómo. ¡Cualquier ayuda es muy apreciada!
edición: Es un SQL Server Express 2008
Realmente no importa si es o no válida XML, porque yo sólo lo uso para rellenar un control TreeView.
edit2: Probablemente usaría "FOR XML EXPLICIT" pero realmente no entiendo la sintaxis cuando no hay una profundidad máxima fija del árbol.
Edit3: para facilitar la comprensión de la tarea, he añadido el DDL para la tabla
lo quieres como tu ejemplo de salida o como XML real? también, ¿qué versión de la base de datos? –
Edité la publicación original, gracias. –
muy similar a este pedido hace un tiempo: http://stackoverflow.com/questions/2408459/t-sql-question-query-to-xml –