Название поля в select for xml

dasistgut
Дата: 19.02.2010 13:34:09
Как называется поле в запросе
select * from t1, t2 where t2.id = t1.t2id FOR XML auto, xmldata

Запрос выдаёт одно поле с названием вида: XML_F52E2B61-18A1-11d1-B105-00805F49916B1

Как мне,например, сделать хп, возвращающую полученную в запросе строку XML?
т.е. мне нужно написать:

declare
@xmlstr varchar(8000)

select @xmlstr = [название поля] from t1, t2 where t2.id = t1.t2id FOR XML auto, xmldata
WarAnt
Дата: 19.02.2010 13:38:36
dasistgut,

Если у Вас 2005 и выше то
DECLARE @xml xml
SET @xml = (select * from t1, t2 where t2.id = t1.t2id FOR XML auto, xmldata)

если меньше чем 2005 то никак, сервер формирует xml поток который можно поймать только клиентом
Паганель
Дата: 19.02.2010 13:39:51
-- test data
declare @t table(id int)
insert into @t 
select 1 union all
select 2
-- end of test data

declare @x xml

set @x = (select id
            from @t as row
           for xml auto)

select @x as result

result
---------------------------------------------------------
<row id="1" /><row id="2" />

(1 row(s) affected)
dasistgut
Дата: 19.02.2010 17:23:29
Спасибо