Добавление уникального числа строк в оператор SQL 2008 "для пути XML"? - PullRequest
1 голос
/ 31 октября 2010

Хорошо, не уверен, что это возможно сделать.

У меня есть запрос, который возвращает просто простые записи из базы данных, но отформатированный как XML следующим образом:

select name, address, dateCreated, flag
from table
where name = 'test'
for xml path('row'), root('rows')

хорошо, нет проблем, и я получаю XML по желанию:

<rows>
  <row>
    <name>jddjdjd</name>
    <address>dkdkdkdkdkd</address>
    .. and so on...
  </row>
</rows>

НО ЧТО Я ПЫТАЮСЯ УЗНАТЬ, ЭТО

Если я могу получить XML, верните следующее:

<rows>
  <row id='@@rowcount'>
    <name>jddjdjd</name>
    <address>dkdkdkdkdkd</address>
    .. and so on...
  </row>
</rows>

Как видите, я действительно мог бы сделать с узлом, возвращающимся с атрибутом скажем @@ rowcount или даже с полем из оператора select (не уверен, если это возможно !!)

Любая помощь высоко ценится !!! Дэвид.

1 Ответ

2 голосов
/ 31 октября 2010

Вы можете использовать псевдоним от @@rowcount до '@id', например:

declare @t table (name varchar(25))

insert @t (name) values ('jddjdjd')

select  @@rowcount as '@id'
,       name
from    @t
for xml path('row'), root('rows')

Это печатает:

<rows>
    <row id="1">
        <name>jddjdjd</name>
    </row>
</rows>

Однако я не уверен, что он четко определил, что означает @@rowcount в точке, где он превращается в атрибут.

...