Вы вставили бы данные из SP во временную таблицу, а затем выбрали из этого FOR XML
Это не будет работать, если сам SP уже делает INSERT .. EXEC SPROC
, потому что вы не можете их вложить
Примеры работы
use tempdb;
create proc giveme
as
select a = 1, b = GETDATE()
union all
select 2, b = '20100101'
Использование INSERT .. EXEC
declare @t table (a int, b datetime)
insert @t
exec giveme
select * from @t for xml raw
Использование OPENQUERY
exec sp_addlinkedserver 'localhost'
exec sp_serveroption @server = 'localhost'
,@optname = 'DATA ACCESS'
,@optvalue = 'TRUE'
select *
from openquery(localhost, 'exec tempdb..giveme')
for xml raw