아래와 같이 xml
이 있습니다. 테이블에 삽입하고 싶습니다. 그리고 2 레코드를 삽입하려고 합니다만, 단 하나의 레코드 만 삽입합니다.XML에서 SQL Server의 테이블에 데이터를 삽입하십시오.
샘플 XML은 :
INSERT INTO Sample
SELECT
submitTime.value('(Project/ProjectId/text())[1]', 'int') ,
submitTime.value('(Project/Task/TaskId/text())[1]', 'int'),
submitTime.value('(Project/Task/SubTask/SubTaskId/text())[1]', 'int'),
submitTime.value('(TaskDate/text())[1]', 'date'),
submitTime.value('(Project/Task/SubTask/Hours/text())[1]', 'int'),
0,
submitTime.value('(Project/Task/SubTask/Comment/text())[1]', 'varchar(20)'),
FROM
@SaveTimeDate.nodes('/xmlSubmitTime/submitTime') AS TEMPTABLE(submitTime)
예상 출력은 다음과 같습니다 :
ProjectID TaskId SubtaskId Hours
----------------------------------
9 5 4 2
9 5 5 6
실제 출력은 다음과 같습니다
ProjectID TaskId SubtaskId Hours
---------------------------------
9 5 4 2
,691이 내 삽입 문
<xmlSubmitTime>
<submitTime>
<TaskDate>2016-08-29</TaskDate>
<Project>
<ProjectId>9</ProjectId>
<Task>
<TaskId>5</TaskId>
<SubTask>
<SubTaskId>4</SubTaskId>
<Hours>2</Hours>
<Comment>sample string 4</Comment>
</SubTask>
<SubTask>
<SubTaskId>5</SubTaskId>
<Hours>6</Hours>
<Comment>sample string 4</Comment>
</SubTask>
</Task>
</Project>
</submitTime>
</xmlSubmitTime>
입니다
잘못된 xml 구조가 있습니다. 나는 각 하위 작업마다 taskID 태그를 사용해야한다고 생각한다. –