Cramhead
15 pts. | Feb 8 2008 7:21PM GMT
Thanks for you post but anytime that I use
For XML explicit
it fail.
Here is a mock up that runs without any schema changes
Note the column name that results.
declare @SiteMapItem table (ID int IDENTITY(1,1) PRIMARY KEY,
[Name] nvarchar(100),
URL nvarchar(100),
Parent int,
DisplayOrder int
)
insert into @SiteMapItem ([Name], URL, Parent, DisplayOrder) values
(’home’, ‘/home’, null, 1)
insert into @SiteMapItem ([Name], URL, Parent, DisplayOrder) values
(’help’, ‘/home/help’, 1, 3)
insert into @SiteMapItem ([Name], URL, Parent, DisplayOrder) values
(’about’, ‘/home/about’, 1, 2)
–Select * from @sitemapitem
SELECT distinct
1 as Tag,
null as Parent,
<a href="http://SiteMapItemParent.Name" title="http://SiteMapItemParent. " target="_blank">SiteMapItemParent.Name</a> [SiteMapItem!1!Name],
null [SiteMapItem!2!Name],
null [SiteMapItem!2!Url]
FROM @SiteMapItem as SiteMapItem
INNER JOIN @SiteMapItem as SiteMapItemParent on SiteMapItem.Parent = SiteMapItemParent.ID
UNION All
–find all the children
SELECT distinct
2 AS Tag,
1 AS Parent,
null [SiteMapItem!1!Name],
<a href="http://SiteMapItem.Name" title="http://SiteMapItem. " target="_blank">SiteMapItem.Name</a> [SiteMapItem!2!Name],
SiteMapItem.Url [SiteMapItem!2!Url]
FROM @SiteMapItem as SiteMapItem
INNER JOIN @SiteMapItem as SiteMapItemParent on SiteMapItem.Parent = SiteMapItemParent.ID
for xml explicit, Root(’SiteMap’)
The output looks like:
<SiteMap>
<SiteMapItem Name="home”>
<SiteMapItem Name="about” Url="/home/about” />
<SiteMapItem Name="help” Url="/home/help” />
</SiteMapItem>
</SiteMap>
When I try to name the column I by adding the
As ColumnName
I get an error “Incorrect syntax near the keyword ‘As’.”
The code that produces this is:
declare @SiteMapItem table (ID int IDENTITY(1,1) PRIMARY KEY, [Name] nvarchar(100), URL nvarchar(100), Parent int, DisplayOrder int ) insert into @SiteMapItem ([Name], URL, Parent, DisplayOrder) values (’home’, ‘/home’, null, 1) insert into @SiteMapItem ([Name], URL, Parent, DisplayOrder) values (’help’, ‘/home/help’, 1, 3) insert into @SiteMapItem ([Name], URL, Parent, DisplayOrder) values (’about’, ‘/home/about’, 1, 2) –Select * from @sitemapitem SELECT distinct 1 as Tag, null as Parent, <a href="http://SiteMapItemParent.Name" title="http://SiteMapItemParent. " target="_blank">SiteMapItemParent.Name</a> [SiteMapItem!1!Name], null [SiteMapItem!2!Name], null [SiteMapItem!2!Url] FROM @SiteMapItem as SiteMapItem INNER JOIN @SiteMapItem as SiteMapItemParent on SiteMapItem.Parent = SiteMapItemParent.ID UNION All –find all the children SELECT distinct 2 AS Tag, 1 AS Parent, null [SiteMapItem!1!Name], <a href="http://SiteMapItem.Name" title="http://SiteMapItem. " target="_blank">SiteMapItem.Name</a> [SiteMapItem!2!Name], SiteMapItem.Url [SiteMapItem!2!Url] FROM @SiteMapItem as SiteMapItem INNER JOIN @SiteMapItem as SiteMapItemParent on SiteMapItem.Parent = SiteMapItemParent.ID for xml explicit, Root(’SiteMap’) As ColunmName






