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>

0 ответов

Другие вопросы по тегам