我们遇到了一个问题,我们在两台不同的服务器上运行完全相同的查询,运行完全相同的Service Pack并更新 - 9.0.4211 - 但接收两个不同格式的XML结果集。有没有人知道为什么/如何发生这种情况? SQL Server生成XML格式的方式是否存在某种设置/架构?我知道我们可以使用PATH选项来转换xml,但此时所有的客户端代码都被写入使用其中一个结果集的格式,并且使用路径选项仍然无法让我们知道AUTO选项对于正确的格式。SQL Server 2005 FOR XML子句
查询 - 如果需要的话,可以提供
SELECT distinct
operation.operationid,
@zoneId as ZoneID,
member.name, IsNull(member.firstname, '') as firstname, IsNull(member.lastname, '') as lastname, IsNull(member.email, '') as email, IsNull(member.memberid, '') as memberid, IsNull(member.type, '') as type, IsNull(member.AppMemberID, '') as AppMemberID
FROM IQSECURE_TaskOperations operation
join IQSECURE_RoleTasks r on operation.taskid = r.taskid
join IQOBASE_Rosters roster on r.roleid = roster.roleid
left outer join IQObase_Members member on roster.rosterid = member.Rosterid
WHERE operation.operationid = @operationid AND roster.zoneid = @zoneId and member.memberid is not null
union
SELECT distinct
operation.operationid,
@zoneID as ZoneID,
member.name, IsNull(member.firstname, '') as firstname, IsNull(member.lastname, '') as lastname, IsNull(member.email, '') as email, IsNull(member.memberid, '') as memberid, IsNull(member.type, '') as type, IsNull(member.AppMemberID, '') as AppMemberID
FROM IQSECURE_TaskOperations operation
join IQSECURE_RoleTasks r on operation.taskid = r.taskid
join IQOBASE_Rosters roster on r.roleid = roster.roleid
left outer join IQOBASE_Members_Exploded member on roster.rosterid = member.Rosterid
WHERE operation.operationid = @operationid AND roster.zoneid = @zoneid and member.memberid is not null
ORDER BY IsNull(member.type, ''), IsNull(member.lastname, ''), IsNull(member.firstname, ''), member.name
FOR XML AUTO, XMLDATA
返回的XML。
在此先感谢您提供的任何帮助。
乔恩
那么,无论是提供XML或解释差异:) – Andomar 2010-11-10 16:17:41