create procedure pro_1 
  @xml  xml output
as 
begin
     set @xml = (select * from table_a for xml path('data') end/*
测试
declare @str xml
exec pro_1  @str  outputprint convert(varchar(max),@str  )
*/

解决方案 »

  1.   


    1,
    sql2005方便,如楼上所述了。sql2000麻烦些。你昨天不是问过了吗?
    http://topic.csdn.net/u/20081021/10/747b1139-c0da-45af-9688-4226c4cffa41.html将这个贴子里的那个表的列类型定义为varchar(8000), 然后从表中select一次就可以加载至变量.2,
    存储过程的输出参数 varchar(max)及xml (2005下) 为2G
    而返回值只表示过程执行的状态,返回值为int类型,并不存在你所说的所能传递的最大长度是多少个字节的问题。