SQL Server 2005 для XML Явная - Нужна помощь форматирования

голоса
8

У меня есть таблица со структурой, как следующее:

------------------------------
LocationID     | AccountNumber
------------------------------
long-guid-here | 12345
long-guid-here | 54321

Для того, чтобы перейти в другую хранимую процедуру, мне нужен XML, чтобы выглядеть следующим образом:

<root> 
    <clientID>12345</clientID>
    <clientID>54321</clientID>
</root>

Лучшее, что я был в состоянии сделать до сих пор получаю это следующим образом:

<root clientID=10705/>

Я использую этот SQL заявление:

SELECT
    1 as tag,
    null as parent,
    AccountNumber as 'root!1!clientID'
FROM
    Location.LocationMDAccount
WHERE
    locationid = 'long-guid-here'
FOR XML EXPLICIT

До сих пор, я посмотрел на документацию на странице MSDN , но я не вышел с желаемыми результатами.


@КГ,

Ваш дал мне этот выход на самом деле:

<root>
  <Location.LocationMDAccount>
    <clientId>10705</clientId>
  </Location.LocationMDAccount>
</root>

Я буду придерживаться с FOR XML EXPLICITКрисом Леона на данный момент.

Задан 05/08/2008 в 21:35
источник пользователем
На других языках...                            


5 ответов

голоса
1

пытаться

SELECT
    1 AS Tag,
    0 AS Parent,
    AccountNumber AS [Root!1!AccountNumber!element]
FROM
    Location.LocationMDAccount
WHERE
    LocationID = 'long-guid-here'
FOR XML EXPLICIT
Ответил 05/08/2008 в 21:51
источник пользователем

голоса
0
ВЫБРАТЬ 1 в качестве тега,
       нуль в качестве родителя,
       AccountNumber как 'ClientId! 1 !! элемент'
ОТ Location.LocationMDAccount
ГДЕ locationid = 'долго-Guid-вот
FOR XML EXPLICIT, корень ( 'корень')
Ответил 31/10/2011 в 12:28
источник пользователем

голоса
0

Использование SQL Server 2005 (или предположительно 2008) я нахожу для XML PATH, чтобы обеспечить гораздо легче поддерживать SQL, чем для XML Explicit (особенно после того, как SQL длиннее).

В этом случае:

SELECT AccountNumber as "clientID"
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR XML PATH (''), Root ('root');
Ответил 17/08/2008 в 07:45
источник пользователем

голоса
0

Я получил его:

select
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID!element'
from
Location.LocationMDAccount
where
locationid = 'long-guid-here'
for xml explicit
Ответил 05/08/2008 в 21:53
источник пользователем

голоса
0

Попробуйте это, Крис:

SELECT
    AccountNumber as [clientId]
FROM
    Location.Location root
WHERE
    LocationId = 'long-guid-here'
FOR
    XML AUTO, ELEMENTS

ОЧЕНЬ ЖАЛЬ! Я перепутал, что вы просили. Я предпочитаю XML AUTO только для удобства охранения, но я считаю, ни один является эффективной. Мои извинения за надзор ;-)

Ответил 05/08/2008 в 21:53
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more