你在存储过程处理就好了:use tempdb
gocreate proc p_test
@s varchar(max) output
as
declare @x xmlset @x = (select top 10 * 
from sys.objects
for xml auto)set @s = convert(varchar(max),@x)
godeclare @s varchar(max)
exec p_test @s output
select @s
godrop proc p_test
go

解决方案 »

  1.   

    sql2005中当然好解决。sql2k中,好像只能用openrowset之类的语句来解决,比如
    declare @x varchar(8000)
    declare @t table(x varchar(8000))
    insert @t select * from openquery('msdasql','exec proc_name' /*这个proc返回xml结果集, 当然,你也可以把这段放在proc里,而这里就是你产生xml的语句 而不是再次调用proc*/) a
    select @x=x from @t这样就可以了。
    如果超长,恐怕你得用text.示意写法,可能手误,仅供参考。