naming column returned from FOR XML EXPLICIT query in SQL Server 2005
for xml explicit?
I get a column named XML_F52E2B61-18A1-11d1-B105-00805F49916B. I'd like to name it something more appropriate for ORM software
The code I currently have is:
Declare @RoleIDs table (RoleID int)
insert into @RoleIDs (RoleID)
select 1
insert into @RoleIDs (RoleID)
select 2
insert into @RoleIDs (RoleID)
select 3
SELECT distinct 1 as Tag,
null as Parent,
SiteMapItemParent.SiteMapItemName [SiteMapHeading!1!Name],
null [SiteMapItem!2!Name],
null [SiteMapItem!2!Url],
SiteMapItemParent.DisplaySequenceNumber as [SiteMapHeading!1!hide!hide]
FROM SiteMapItem INNER JOIN
SiteMapItem as SiteMapItemParent on SiteMapItem.ParentSiteMapItemID = SiteMapItemParent.SiteMapItemID inner join
SiteMapItemPolicy on SiteMapItemPolicy.SiteMapItemID = SiteMapItem.SiteMapItemID inner join
SystemRolePrivilege on SystemRolePrivilege.SystemPrivilegeID = SiteMapItemPolicy.SystemPrivilegeID inner join
@RoleIDs as R on SystemRolePrivilege.SystemRoleID = R.RoleID
UNION All
--find all the children
SELECT distinct 2 AS Tag,
1 AS Parent,
null [Name],
SiteMapItem.SiteMapItemName [SiteMapItem!2!Name],
SiteMapItem.SiteMapItemUrlText [SiteMapItem!2!Url],
SiteMapItem.DisplaySequenceNumber as [SiteMapItem!2!hide!hide]
FROM SiteMapItem INNER JOIN
SiteMapItem as SiteMapItemParent on SiteMapItem.ParentSiteMapItemID = SiteMapItemParent.SiteMapItemID inner join
SiteMapItemPolicy on SiteMapItemPolicy.SiteMapItemID = SiteMapItem.SiteMapItemID inner join
SystemRolePrivilege on SystemRolePrivilege.SystemPrivilegeID = SiteMapItemPolicy.SystemPrivilegeID inner join
@RoleIDs as R on SystemRolePrivilege.SystemRoleID = R.RoleID
order by [SiteMapHeading!1!hide!hide]
for xml explicit, Root('SiteMap')



