Используйте синтаксис FOR XML PATH
, доступный в SQL Server 2005 и новее - попробуйте что-то вроде этого:
DECLARE @table TABLE (PageID INT, PageUrl VARCHAR(50), PageName VARCHAR(50))
INSERT INTO @table VALUES(1, 'setup/pagemst', 'Page Master'),(2, 'setup/modules', 'Module Master')
select
PageID AS '@id',
PageID AS 'cell',
'',
PageUrl AS 'cell',
'',
PageName AS 'cell'
from @table
FOR XML PATH('row')
Дает мне вывод в конце:
<row id="1">
<cell>1</cell>
<cell>setup/pagemst</cell>
<cell>Page Master</cell>
</row>
<row id="2">
<cell>2</cell>
<cell>setup/modules</cell>
<cell>Module Master</cell>
</row>
Синтаксис FOR XML PATH
позволяет вам определять, какие значения возвращать как атрибуты XML (... AS '@id'
) или элементы XML. Добавляя «пустые» строки между элементами, вы предотвращаете слияние / объединение вывода
в один <cell>....</cell>
элемент XML