create table login(accountname varchar(50),logtype char(10),
logtime datetime,logip varchar(50))insert into login values('cs914','login','2011-06-29 13:31:14','211.1.4.4')
insert into login values('cs914','logout','2011-06-29 13:52:15','211.1.4.4')
SELECT  accountname,rtrim(logtype) logtype,
logtime  ,logip
FROM     login
FOR XML  AUTO
GO
--结果
<login accountname="cs914" logtype="login" logtime="2011-06-29T13:31:14" logip="211.1.4.4"/><login accountname="cs914" logtype="logout" logtime="2011-06-29T13:52:15" logip="211.1.4.4"/>--需要
<accountnames><account><login accountname="cs914" logtype="login" logtime="2011-06-29T13:31:14" logip="211.1.4.4"/><login accountname="cs914" logtype="logout" logtime="2011-06-29T13:52:15" logip="211.1.4.4"/><accountnames><account>

解决方案 »

  1.   

    通过中间变量,代码如下供参考.declare @x xml,@t varchar(max)set @t='<accountnames><account>'+(SELECT accountname,rtrim(logtype) logtype,logtime ,logip FROM login FOR XML auto)+'</account></accountnames>'select @x=@tselect @x结果
    <accountnames>
      <account>
        <login accountname="cs914" logtype="login" logtime="2011-06-29T13:31:14" logip="211.1.4.4" />
        <login accountname="cs914" logtype="logout" logtime="2011-06-29T13:52:15" logip="211.1.4.4" />
      </account>
    </accountnames>