我有一个XML文件,它使用表的列作为元素。我试图解决的问题是:
1)如何在select语句中为每个记录生成单个XML文件;
2)使用基于共享服务器上的rowId的唯一名称保存每个xml文件
这里的问题是在Cursor语句中不允许FOR XML和XML数据类型。
CREATE TABLE #T1
(
ID INT NOT NULL,
LName NVARCHAR(30) NULL,
FName NVARCHAR(30) NULL,
Comments NVARCHAR(MAX) NULL
);
GO
INSERT INTO #T1 (ID, LName, FName, Comments)
VALUES
(1, 'JONOTHAN', 'SMITH', 'is the best friend ever'),
(2, 'ROGER', 'SHU`LTS', 'is the boss!'),
(3, 'Jeremy', 'Deimer', 'is the a good drama actor'),
(4, 'Alexandra', 'Norusis', 'is the smart feminist');
GO
SELECT
t.ID,
t.LName,
t.FName,
t.Comments
FROM #T1 t
FOR XML PATH('BODY') --, ROOT ('MyProject');
上面的根标签被注释掉,因为我想要的XML文件输出" Body"在" FOR XML PATH(' BODY')"中指定将是根标记本身,因为每行数据应该有一个XML文件。
以下是XML文件格式的所需输出:
<Body>
<Project>2538</Project>
<Title>SERVICE, MAINTENANCE, REPAIR, TESTING </Title>
<Summary> Install cabling and provide testing of cabling for </Summary>
<Requirement>Operations Maintenance|</Requirement>
<CodeDescription>93609 - Alarm Equipment|</CodeDescription>
</Body>