Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
Руслан Дамирович 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] Ответить | Цитировать Сообщить модератору |
schetovod Member Откуда: Сообщений: 4 |
Руслан Дамирович, к сожалению в 2000м for xml PATH нет :( |
13 мар 17, 16:54 [20290507] Ответить | Цитировать Сообщить модератору |
Кесарь Member Откуда: Сообщений: 463 |
А с какой целью сохраняется приверженность sql server 2000?! |
13 мар 17, 16:57 [20290529] Ответить | Цитировать Сообщить модератору |
schetovod Member Откуда: Сообщений: 4 |
Кесарь, особо никакой цели нет, но в бюджете пока не предусмотрена миграция. |
13 мар 17, 16:58 [20290534] Ответить | Цитировать Сообщить модератору |
Кесарь Member Откуда: Сообщений: 463 |
А каков размер базы? |
||
13 мар 17, 17:01 [20290553] Ответить | Цитировать Сообщить модератору |
Руслан Дамирович 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] Ответить | Цитировать Сообщить модератору |
schetovod Member Откуда: Сообщений: 4 |
Руслан Дамирович, не прокатило :( убивает меня sql2000 |
14 мар 17, 14:13 [20293484] Ответить | Цитировать Сообщить модератору |
Кесарь Member Откуда: Сообщений: 463 |
Ну да, на дворе мал мала 2017-й год... Посоветуйте заказчикам выставлять требования и задания соответствующие уровню ПО ![]() Использование MSSQL2000 было адекватным до 2008 года примерно. |
||
14 мар 17, 14:23 [20293582] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Руслан Дамирович Member Откуда: Резиновая нерезиновая Сообщений: 940 |
WarAnt, В MSDN - 2005, на сервере - 2014, а на дворе - 2017. Поди сейчас найди оригинальный BOL на 2000й. А вот за !ELEMENT - спасибо! запомним. |
14 мар 17, 17:18 [20294575] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |