我不熟悉从SQL生成XML代码。
在做了一些研究之后,我想我需要使用如下语句:FOR XML EXPLICIT
,FOR XML RAW
或FOR XML AUTO
,但当我在AUTO
上运行时,输出就是一行像这样:
<student externalStudentID1="100003" lastName="Smith" externalSiteId="Place"/>
这接近我的需要,但它必须具有特定的开始和结束标签,如:
<student externalStudentID1="100003" externalSiteId="Place"></student>
当我尝试使用ELEMENTS
,RAW
或PATH
时,我最终为所有元素打开和关闭标记。 EXPLICIT
只是抛出错误,需要重写整个select语句。有人可以帮忙吗?这是我的代码:
SELECT [externalStudentId1] as StudId, (
SELECT [externalStudentId1],[externalStudentId2],[socialSecurityNumber],sbl.fn_ToSblDate ( [birthDate]) as [birthDate],[lastName],[firstName],[middleName],[informalName],[nameTitle] ,[nameSuffix],[externalCampusId],[externalSiteId]
FROM sbl.[student] as student
WHERE student.externalStudentId1=stud.externalStudentId1
FOR XML Auto
) as SblData
FROM sbl.[student] as stud
WHERE stud.[ExcludeFromSbl] =0
答案 0 :(得分:0)
要生成打开和关闭标记,您可以添加空的内部文本节点。例如。
SELECT
externalStudentId1 AS '@externalStudentID1',
externalSiteId AS '@externalSiteId',
...
'' AS 'text()' -- This empty string as inner text is added
FROM
sbl.[student]
FOR
XML PATH('student')