I는, 예를 들면 (a C# 1 엔티티 그래프에서 생성) 복잡한 중첩 XML을 가지고중첩 된 XML을 해당 테이블로 변환하는 방법은 무엇입니까?
<Customers>
<Customer>
<Id>1</Id>
<Number>12345</Number>
<Addresses>
<Address>
<Id>100</Id>
<Street>my street </street>
<city>London</city>
</Address>
<Address>
<Id>101</Id>
<street>my street 2</street>
<city>Berlin</city>
</Address>
</Addresses>
<BankDetails>
<BankDetail>
<Id>222</Id>
<Iban>DE8439834934939434333</Iban>
</BankDetail>
<BankDetail>
<Id>228</Id>
<Iban>UK1237921391239123213</Iban>
</BankDetail>
</BankDetails>
<Orders>
<Order>
<OrderLine>
</OrderLine>
</Order>
</Orders>
</Customer>
</Customers>
실제 테이블에 상기 XML 데이터를 저장하기 전에, 먼저 처리해야한다. 이런 이유로, 나는 대응 테이블 유형을 만들었다. 이러한 각 테이블 유형에는 여분의 열 (ROWGUID로 guid)이있어 새로운 데이터 (아직 기본 키가 할당되지 않은)를 처리 할 때 고유 키가 생성되도록합니다. 이 열을 사용하여 서로 다른 테이블 유형간에 관계형 무결성을 유지합니다.
위의 중첩 된 XML을 해당 테이블로 변환하는 SQL 구문은 무엇입니까? 하위 레코드가 생성 된 상위 GUID를 참조해야한다는 것을 명심하십시오.
XML이 유효하지 않습니다 (틀린 닫는 태그' ') ... 잘못된 장소에 몇 개의'>'문자가있을 것입니다 ... ('* my street> *') –
Shnugo
이 질문에 이미 답변되었습니다. : http://stackoverflow.com/questions/3989395/convert-xml-to-table-sql-server – Penman
@Shnugo 오타가 수정되었습니다. –