2
저는 XML을 사용하여 대량의 데이터를 잠시 동안 SQL로 가져 왔습니다.하지만 여러 XML 파일에서 여러 테이블로 데이터를 가져올 수 있는지 궁금합니다. 자식 노드? 이 예제를 감안할 때XML을 사용하여 SQL Server로 관계형 데이터 가져 오기
는 :
DECLARE @tbl_makes TABLE (ID int IDENTITY(1,1), makeName nvarchar(100))
INSERT INTO @tbl_makes (makeName) VALUES ('Ford')
INSERT INTO @tbl_makes (makeName) VALUES ('Jaguar')
DECLARE @tbl_models TABLE (ID int IDENTITY(1,1), makeID int, modelName nvarchar(100))
INSERT INTO @tbl_models (makeID, modelName) VALUES (1, 'Escort')
INSERT INTO @tbl_models (makeID, modelName) VALUES (1, 'Sierra')
INSERT INTO @tbl_models (makeID, modelName) VALUES (2, 'XK')
INSERT INTO @tbl_models (makeID, modelName) VALUES (2, 'XJS')
SELECT * FROM @tbl_makes m INNER JOIN @tbl_models md ON m.ID = md.makeID
DECLARE @xml XML = '
<cars>
<make name="Ford">
<model name="Mustang" />
<model name="Taurus" />
<model name="F350" />
</make>
<make name="Aston Martin">
<model name="Vanquish" />
<model name="DB7" />
<model name="Lagonda" />
</make>
</cars>'
나는 메이크업 이름이 먼저 관련 데이터가 삽입되기 전에/삽입 보았다 업 될 필요가 있음을 주셔서 감사합니다. 나는 이것에 대한 답변을 온라인에서 찾았지만 예제는 하나의 테이블만을 사용한다. 나는 다양한 임시 테이블을 사용하지 않으면 불가능하다고 생각하지만, 여기에 간다 ...
와우. 최고의 대답. CROSS APPLY 부분에 대해 설명해 주시겠습니까? LEFT JOIN을 XML 객체 값으로 가져올 수 없기 때문입니까? 또한, OUTER가 적용되면 논리에 어떤 차이가 있습니까? – EvilDr
CROSS APPLY 및 nodes()는 XML 문서에서 테이블과 유사한 엔티티를 만드는 데 도움이됩니다. XPath 표현식은 일부 요소를 반환하고 모든 단일 요소는 단일 행과 연결됩니다. 언급 된 자동차가없는 자동차 제조업체가있을 수있는 경우에만 외장이 필요할 수 있습니다. – GriGrim
우수, 다시 한번 감사드립니다. – EvilDr