我从下面的SQL代码出现两个问题:如何将XML编码标签附加到XML结果集
DECLARE @tbl TABLE(BookID int primary key,
Title varchar(50),
Author varchar(50),
Pages int);
INSERT INTO @tbl SELECT 1,'The Book', 'The Author', 20
INSERT INTO @tbl SELECT 2,'Another Book', 'Another Author', 20
INSERT INTO @tbl SELECT 3,'Book', 'Author', 20
SELECT Book.Title,
(SELECT Details.BookID Ref, Details.Author, Details.Pages
FROM @tbl Details
FOR XML RAW ('Details'), type)
FROM @tbl Book
FOR XML RAW ('Book'), ROOT ('Books')
返回的结果集为:
<Books>
<Book Title="The Book">
<Details Ref="1" Author="The Author" Pages="20" />
<Details Ref="2" Author="Another Author" Pages="20" />
<Details Ref="3" Author="Author" Pages="20" />
</Book>
<Book Title="Another Book">
<Details Ref="1" Author="The Author" Pages="20" />
<Details Ref="2" Author="Another Author" Pages="20" />
<Details Ref="3" Author="Author" Pages="20" />
</Book>
<Book Title="Book">
<Details Ref="1" Author="The Author" Pages="20" />
<Details Ref="2" Author="Another Author" Pages="20" />
<Details Ref="3" Author="Author" Pages="20" />
</Book>
</Books>
问题一:详细标签对于每本书都重复多次,我只需要一个。 第2期:我想将<?xml version="1.0"?>
附加到结果集的顶部。
谢谢你的回答。输出已经从单独的行上很好格式化的XML标记改变为纯文本,是否有保存格式的方法? – Mxaza
不确定。 SSMS对我来说总是一条线,甚至是你原来的帖子。 – smoore4