Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 структура XML при FOR XML EXPLICIT  [new]
schetovod
Member

Откуда:
Сообщений: 4
Добрый день, прошу помощи!

Имеется MSSQL 2000

создаю вот такую структуру

select 1 as tag,
null as parent,
null as [feed!1],
null as [feed_version!2],
null as [object!3],
null as [object!3!ExternalID],
null as [object!3!Category]
union all

select 2,
1,
null,
'2' as [feed_version!2!],
null,
null,
null
union all

select 3,
1,
null,
null,
null,
P.RID as [object!3!ExternalID],
'rentFlat' as [object!3!Category]
from sysdba.[property] P

for xml explicit


получаю результат такого вида

<feed>
<feed_version>2</feed_version>
<object ExternalID="23115" Category="rentFlat"/>
<object ExternalID="16115" Category="rentFlat"/>
<object ExternalID="13674" Category="rentFlat"/>
</feed>

а нужно получить
<feed>
<feed_version>2</feed_version>
<object>
<ExternalId>23115</ExternalId>
<Category>flatRent</Category>
</object>
<object>
<ExternalId>16115</ExternalId>
<Category>flatRent</Category>
</object>
<object>
<ExternalId>13674</ExternalId>
<Category>flatRent</Category>
</object>
</feed>

что нужно поменять?
заранее благодарю за подсказки
13 мар 17, 16:19    [20290307]     Ответить | Цитировать Сообщить модератору
 Re: структура XML при FOR XML EXPLICIT  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
schetovod,

не знаю, как в 2000, в 2014 можно так:
SELECT
  [feed_version] = 2,
	[*] = ( 
    SELECT
      object_id as ExternalID,
	    'rentFlat' as [Category]
	  FROM 
      sys.objects p
    FOR XML PATH( 'object' ), TYPE )
  FOR XML PATH( 'feed' )
13 мар 17, 16:51    [20290483]     Ответить | Цитировать Сообщить модератору
 Re: структура XML при FOR XML EXPLICIT  [new]
schetovod
Member

Откуда:
Сообщений: 4
Руслан Дамирович,
к сожалению в 2000м for xml PATH нет :(
13 мар 17, 16:54    [20290507]     Ответить | Цитировать Сообщить модератору
 Re: структура XML при FOR XML EXPLICIT  [new]
Кесарь
Member

Откуда:
Сообщений: 463
А с какой целью сохраняется приверженность sql server 2000?!
13 мар 17, 16:57    [20290529]     Ответить | Цитировать Сообщить модератору
 Re: структура XML при FOR XML EXPLICIT  [new]
schetovod
Member

Откуда:
Сообщений: 4
Кесарь,
особо никакой цели нет, но в бюджете пока не предусмотрена миграция.
13 мар 17, 16:58    [20290534]     Ответить | Цитировать Сообщить модератору
 Re: структура XML при FOR XML EXPLICIT  [new]
Кесарь
Member

Откуда:
Сообщений: 463
schetovod
Кесарь,
особо никакой цели нет, но в бюджете пока не предусмотрена миграция.


А каков размер базы?
13 мар 17, 17:01    [20290553]     Ответить | Цитировать Сообщить модератору
 Re: структура XML при FOR XML EXPLICIT  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
schetovod,
Мое воспаленное сознание сумело породить только такое, но я не уверен, что в 2000 этот "Франкенштейн" оживет:
SELECT 
     1 AS tag,
	NULL AS parent,
	NULL AS [feed!1],
	NULL AS [feed_version!2],
	NULL AS [object!3!],
	NULL AS [object!3!]
UNION ALL
SELECT
     2 AS tag,
	   1 AS parent,
	NULL AS [feed!1],
	   2 AS [feed_version!2],
	NULL AS [object!3!],
	NULL AS [object!3!]
UNION ALL
SELECT TOP 10
     3 AS tag,
	   1 AS parent,
	NULL AS [feed!1],
	   2 AS [feed_version!2],
	( SELECT 
     1 AS tag,
	   NULL AS parent,
     [object_id] AS [ExternalID!1]
     FOR XML EXPLICIT, TYPE ) AS [object!3!],
	( SELECT 
     1 AS tag,
	   NULL AS parent,
     'rent' AS [Category!1]
     FOR XML EXPLICIT, TYPE ) AS [object!3!]
FROM
  sys.objects p
FOR XML EXPLICIT
13 мар 17, 17:46    [20290725]     Ответить | Цитировать Сообщить модератору
 Re: структура XML при FOR XML EXPLICIT  [new]
schetovod
Member

Откуда:
Сообщений: 4
Руслан Дамирович,

не прокатило :(
убивает меня sql2000
14 мар 17, 14:13    [20293484]     Ответить | Цитировать Сообщить модератору
 Re: структура XML при FOR XML EXPLICIT  [new]
Кесарь
Member

Откуда:
Сообщений: 463
schetovod
Руслан Дамирович,

не прокатило :(
убивает меня sql2000


Ну да, на дворе мал мала 2017-й год... Посоветуйте заказчикам выставлять требования и задания соответствующие уровню ПО "Не можем/не хотим обновляться, давайте работать как десять лет назад."

Использование MSSQL2000 было адекватным до 2008 года примерно.
14 мар 17, 14:23    [20293582]     Ответить | Цитировать Сообщить модератору
 Re: структура XML при FOR XML EXPLICIT  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
schetovod,

а чего пользоваться BOL стало вдруг не модно чтоли ELEMENT

SELECT 1    as Tag,  
       NULL as Parent,  
       E.BusinessEntityID as [Employee!1!EmpID],  
       NULL       as [Name!2!FName!ELEMENT],  
       NULL       as [Name!2!LName!ELEMENT]  
FROM   HumanResources.Employee AS E  
INNER JOIN Person.Person AS P  
ON  E.BusinessEntityID = P.BusinessEntityID  
UNION ALL  
SELECT 2 as Tag,  
       1 as Parent,  
       E.BusinessEntityID,  
       FirstName,   
       LastName   
FROM   HumanResources.Employee AS E  
INNER JOIN Person.Person AS P  
ON  E.BusinessEntityID = P.BusinessEntityID  
ORDER BY [Employee!1!EmpID],[Name!2!FName!ELEMENT]  
FOR XML EXPLICIT;
14 мар 17, 15:27    [20293957]     Ответить | Цитировать Сообщить модератору
 Re: структура XML при FOR XML EXPLICIT  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
WarAnt,
В MSDN - 2005, на сервере - 2014, а на дворе - 2017.
Поди сейчас найди оригинальный BOL на 2000й.
А вот за !ELEMENT - спасибо! запомним.
14 мар 17, 17:18    [20294575]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить