SQL에서 XML로 많은 작업을하지 않았으므로 최선을 다해 질문 할 것입니다.XML 삽입물에서 개별 신원을 얻는 방법?
삽입 용 SQL에서 구조화 된 XML을 수신한다고 가정 해 봅시다.
구조는 다음과 같을 수 있습니다
나는이 경우에 나는 단지 한 기록 및 접근 SCOPE_IDENTITY을 (이 있기 때문에, 신원을 -Team- 레코드를 삽입하고 얻을 수 있어요<Team>
<Player>
<Name>Player1</Name>
<Games>
<Game>
<Date>9/7/2009</Date>
<MinutesPlayed>90</MinutesPlayed>
</Game>
</Games>
</Player>
<Player>
<Name>Player2</Name>
<Games>
<Game>
<Date>9/7/2008</Date>
<MinutesPlayed>87</MinutesPlayed>
</Game>
</Games>
</Player>
</Team>
는)에 대한 정체성을 일치합니다 그 레코드, 그리고 Player 노드를 삽입 할 때 사용하는 ID.
게임 테이블에 PlayerID 필드가 있습니다. 삽입 된 각 플레이어의 신원을 확인한 다음 해당 신원을 사용하여 게임 기록을 삽입하려면 어떻게해야합니까?
@Select FROM @ ReceivedXML.nodes ('Player')와 같은 SELECT를 수행하면 여러 값이 반환되므로 모든 플레이어 노드가 일괄 적으로 삽입됩니다.
아무에게도이 작업을 수행하는 방법에 대한 가이드 나 나에게이 문제를 어떻게 해결했는지 공유 할 수 있습니까? 고마워, 정말 고마워.
편집 - 어쩌면 정확하게 설명하지 못했습니다.
팀에 TeamID 필드가 있습니다. 플레이어에는 TeamID 필드와 마찬가지로 PlayerID 필드가 있습니다. 게임에는 GameID 및 PlayerID 필드가 있습니다.
XML에서 팀을 새로 추가하고 팀 ID를 새로 생성 한 다음 플레이어 1을 PLayers 테이블에 삽입하고 새로 생성 된 PlayerID ID를 가져온 다음 이전에 획득 한 PLayerID를 사용하여 게임 레코드를 삽입하는 방법에 대해 설명합니다.
Player1을 끝내고 나면 Player2에서도 동일한 작업을 수행합니다. 플레이어 기록을 넣고 신분을 PlayerID < 삽입 게임 등
이렇게하려면, 당신은 아마 최고야 게임 등으로 다음 삽입의 ID를 얻기 위해 이름을 플레이어 테이블과 구문 분석 된 XML에 가입 - 당신로 말하자면, 플레이어 전체를 넣을 수 있으며, 차례로 각 플레이어를위한 수많은 게임을 삽입 할 수 있습니다. 이것은 루프에서 수행하는 것이 가장 좋습니다. T-SQL이 확실하게 빛을 발하지 않는 영역입니다. –