XML 데이터를 SQL Server에 저장하는 가장 좋은 방법은 무엇입니까?
-
22-08-2019 - |
문제
꽤 직접적인 경로가 있습니까? (즉, SQL Server가 XML을 읽을 수 있습니다)
아니면 XML을 구문 분석하고 Ado.net을 통해 개별 행이나 배치 업데이트를 통해 일반적인 방식으로 전송하는 것이 가장 좋습니까?
나는 큰 복잡한 저장된 Procs와 관련된 솔루션이있을 수 있다는 것을 알고 있습니다. 나는 이것에 완전히 반대하지는 않지만 C# 코드에 대부분의 비즈니스 논리를 갖는 것을 선호하는 경향이 있습니다. SQLXMLBULKLOAD를 사용하여 솔루션을 보았지만 상당히 복잡한 SQL 코드가 필요한 것 같습니다.
참고로, 각 (문자열 및 int)에 대해 약 50 개의 작은 데이터로 한 번에 약 100 행으로 작업 할 것입니다. 이것은 결국 매일 매일 배치 작업이 될 것입니다.
제공 할 수있는 코드 스 니펫은 대단히 감사합니다.
해결책
SQL Server 2005 이상에는 "XML"이라는 데이터 유형이있어 XML을 XSD 스키마로 유형하거나 입력 할 수 있습니다.
기본적으로 XML 리터럴 스트링에서 유형 XML 열을 채울 수 있으므로 일반 삽입 문을 쉽게 사용하고 해당 필드에 XML 컨텐츠를 채울 수 있습니다.
마크
다른 팁
OpenXML 및 저장 프로 시저 SP_XML_PREPAREDOCUMUTE 기능을 사용하여 XML을 로우 세트로 쉽게 변환 할 수 있습니다.
SQL Server 2008 (또는 2005)을 사용하는 경우 xml
기본 데이터 유형. XSD 스키마를 연관시킬 수 있습니다 xml
변수 및 유형 열에 직접 삽입하십시오 xml
.
예, SQL Server 2005 이상은 상자에서 XML을 구문 분석 할 수 있습니다.
노드, 값 및 쿼리 메소드를 사용하여 값 또는 속성이든 원하는 방식을 세분화합니다.
일부 뻔뻔한 막힘 :
XML 데이터와 XML 문서는 다른 의미를 가질 수 있습니다. XML 유형이 데이터에 적합하면 형식 (흰색 공간이 제거됨)을 저장하지 않으므로 경우에 따라 (예 : Cofiguration 파일) 가장 좋은 옵션은 NVarchar입니다.