我现在用的是mssqlserver 2000,问题如下:
 
  查询语句:
 DECLARE @TempTable table(UserID int , UserName nvarchar(50))
           insert into @TempTable (UserID,UserName) values (1,'a') 
           insert into @TempTable (UserID,UserName) values (2,'b')            select UserID,UserName from @TempTable for xml AUTO, ELEMENTS
  
  显示的结果为:
     <_x0040_TempTable><UserID>1</UserID><UserName>a</UserName></_x0040_TempTable><_x0040_TempTable><UserID>2</UserID><UserName>b</UserName></_x0040_TempTable>
     如果查询的数据量多,如下语句:
  DECLARE @TempTable table(UserID int , UserName nvarchar(50))
insert into @TempTable (UserID,UserName) values (1,'a') 
insert into @TempTable (UserID,UserName) values (2,'b') insert into @TempTable (UserID,UserName) values (3,'a') 
insert into @TempTable (UserID,UserName) values (4,'b') 
insert into @TempTable (UserID,UserName) values (5,'a') 
insert into @TempTable (UserID,UserName) values (6,'b') 
insert into @TempTable (UserID,UserName) values (7,'a') 
insert into @TempTable (UserID,UserName) values (8,'b') 
insert into @TempTable (UserID,UserName) values (9,'a') 
insert into @TempTable (UserID,UserName) values (10,'b') 
insert into @TempTable (UserID,UserName) values (11,'a') 
insert into @TempTable (UserID,UserName) values (12,'b') 
insert into @TempTable (UserID,UserName) values (13,'a') 
insert into @TempTable (UserID,UserName) values (14,'b') 
insert into @TempTable (UserID,UserName) values (15,'a') 
insert into @TempTable (UserID,UserName) values (16,'b') 
insert into @TempTable (UserID,UserName) values (17,'a') 
insert into @TempTable (UserID,UserName) values (18,'b') 
insert into @TempTable (UserID,UserName) values (19,'a') 
insert into @TempTable (UserID,UserName) values (20,'b') 
select UserID,UserName from @TempTable for xml AUTO, ELEMENTS
显示的结果为:<_x0040_TempTable><UserID>1</UserID><UserName>a</UserName></_x0040_TempTable><_x0040_TempTable><UserID>2</UserID><UserName>b</UserName></_x0040_TempTable><_x0040_TempTable><UserID>3</UserID><UserName>a</UserName></_x0040_TempTable><_x0040_TempTable><UserID为什么数据量一多,得出的结果会只显示部分数据呢?
谁能帮帮我,非常谢谢。

解决方案 »

  1.   

    declare @tt nvarchar(max)
    set @tt=(select UserID,UserName from @TempTable for xml AUTO, ELEMENTS)
    select @tt不影响你使用的
    程序直接调用就可以 只是显示的问题
      

  2.   

    这样写不对啊?
    declare @tt varchar(8000)
    set @tt=(select UserID,UserName from @TempTable for xml AUTO, ELEMENTS)
    select @tt
    错误提示为:
    服务器: 消息 170,级别 15,状态 1,行 2
    第 2 行: 'xml' 附近有语法错误。
      

  3.   

    xys_777太谢谢了,哦,我怎么没想到,真傻了!