SQL Server - вывести один XML-файл на одну строку в таблице или выбрать оператор
У меня есть XML-файл, который использует столбцы таблицы в качестве элементов. Вопрос, который я пытаюсь решить:
1) как создать отдельный XML-файл для каждой записи в операторе выбора;
2) сохранить каждый XML-файл с уникальным именем на основе rowId на общем сервере
Проблема здесь в том, что FOR XML и тип данных XML недопустимы в операторе Cursor.
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>