애플리케이션에서 XML 데이터 사용

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

이 문서에서는 애플리케이션에서 xml 데이터 형식을 사용하는 데 사용할 수 있는 옵션에 대해 설명합니다. 이 문서에는 다음에 대한 정보가 포함되어 있습니다.

  • ADO 및 SQL Server Native Client를 사용하여 xml 형식 열에서 XML 처리

  • ADO.NET을 사용하여 xml 유형의 열에서 XML 처리

  • ADO.NET 사용하여 매개 변수의 xml 형식 처리

ADO 및 SQL Server Native Client를 사용하여 xml 형식 열에서 XML 처리

MDAC 구성 요소를 사용하여 SQL Server 2005(9.x)에서 도입된 형식 및 기능에 액세스하려면 ADO 연결 문자열에서 DataTypeCompatibility 초기화 속성을 설정해야 합니다.

예를 들어 다음 Visual Basic Scripting Edition(VBScript) 예제는 예제 데이터베이스의 테이블에서 Demographics라는 Sales.Store xml AdventureWorks2022 데이터 형식 열을 쿼리한 결과를 보여 줍니다. 특히 이 쿼리는 이 열의 항목 값에서 CustomerID3인 행을 검색합니다.

Const DS = "MyServer"
Const DB = "AdventureWorks2022"

Set objConn = CreateObject("ADODB.Connection")
Set objRs = CreateObject("ADODB.Recordset")

CommandText = "SELECT Demographics" & _
              " FROM Sales.Store" & _
              " INNER JOIN Sales.Customer" & _
              " ON Sales.Store.BusinessEntityID = sales.customer.StoreID" & _
              " WHERE Sales.Customer.CustomerID = 3" & _
              " OR Sales.Customer.CustomerID = 4"

ConnectionString = "Provider=MSOLEDBSQL" & _
                   ";Data Source=" & DS & _
                   ";Initial Catalog=" & DB & _
                   ";Integrated Security=SSPI;" & _
                   "DataTypeCompatibility=80"

'Connect to the data source.
objConn.Open ConnectionString

'Execute command through the connection and display
Set objRs = objConn.Execute(CommandText)

Dim rowcount
rowcount = 0
Do While Not objRs.EOF
   rowcount = rowcount + 1
   MsgBox "Row " & rowcount & _
           vbCrLf & vbCrLf & objRs(0)
   objRs.MoveNext
Loop

'Clean up.
objRs.Close
objConn.Close
Set objRs = Nothing
Set objConn = Nothing

이 예제에서는 데이터 형식 호환성 속성을 설정하는 방법을 보여줍니다. 기본적으로 SQL Server Native Client를 사용하는 경우 이 값은 0으로 설정됩니다. 값을 80으로 설정하면 SQL Server Native Client 공급자가 xml 및 사용자 정의 형식 열을 SQL Server 2000(8.x) 데이터 형식으로 표시합니다. 이러한 유형은 각각 DBTYPE_WSTR 및 DBTYPE_BYTES입니다.

참고 항목

SQL Server Native Client(약칭 SNAC)는 SQL Server 2022(16.x) 및 SSMS(SQL Server Management Studio) 19에서 제거되었습니다. SQL Server Native Client(SQLNCLI 또는 SQLNCLI11) 및 레거시 Microsoft OLE DB Provider for SQL Server(SQLOLEDB)는 새 애플리케이션 개발에 권장되지 않습니다. 앞으로 새 SQL Server용 Microsoft OLE DB 드라이버(MSOLEDBSQL) 또는 최신 Microsoft ODBC Driver for SQL Server로 전환합니다. SQL Server 데이터베이스 엔진(버전 2012~2019)의 구성 요소로 제공되는 SQLNCLI의 경우 이 지원 수명 주기 예외를 참조하세요.

이 예제 테스트

  1. SQL Server Native Client가 설치되어 있고 나중에 MDAC 2.6.0or를 클라이언트 컴퓨터에서 사용할 수 있는지 확인합니다.

    자세한 내용은 SQL Server Native Client 프로그래밍을 참조하세요.

  2. SQL Server의 AdventureWorks2022 샘플 데이터베이스가 설치되어 있는지 확인합니다.

    이 예제에는 샘플 데이터베이스가 AdventureWorks2022 필요합니다.

  3. 이 문서의 앞에 표시된 코드를 복사하여 텍스트 또는 코드 편집기에 붙여넣습니다. 파일을 HandlingXmlDataType.vbs로 저장합니다.

  4. SQL Server 설치에 필요한 대로 스크립트를 수정하고 변경 내용을 저장합니다.

    예를 들어 지정된 위치에 MyServer SQL Server가 설치된 서버의 실제 이름 또는 해당 이름을 바꿔 (local) 야 합니다.

  5. HandlingXmlDataType.vbs를 실행하고 스크립트를 실행합니다.

결과는 다음 샘플 출력과 유사해야 합니다.

Row 1

<StoreSurvey xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey">
  <AnnualSales>1500000</AnnualSales>
  <AnnualRevenue>150000</AnnualRevenue>
  <BankName>Primary International</BankName>
  <BusinessType>OS</BusinessType>
  <YearOpened>1974</YearOpened>
  <Specialty>Road</Specialty>
  <SquareFeet>38000</SquareFeet>
  <Brands>3</Brands>
  <Internet>DSL</Internet>
  <NumberEmployees>40</NumberEmployees>
</StoreSurvey>

Row 2

<StoreSurvey xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey">
  <AnnualSales>300000</AnnualSales>
  <AnnualRevenue>30000</AnnualRevenue>
  <BankName>United Security</BankName>
  <BusinessType>BM</BusinessType>
  <YearOpened>1976</YearOpened>
  <Specialty>Road</Specialty>
  <SquareFeet>6000</SquareFeet>
  <Brands>2</Brands>
  <Internet>DSL</Internet>
  <NumberEmployees>5</NumberEmployees>
</StoreSurvey>

ADO.NET 사용하여 xml 형식 열에서 XML 처리

ADO.NET 및 Microsoft .NET Framework를 사용하여 xml 데이터 형식 열에서 XML을 처리하려면 SqlCommand 클래스의 표준 동작을 사용할 수 있습니다. 예를 들어 SqlDataReader를 사용하여 SQL 열을 검색하는 것과 동일한 방식으로 xml 데이터 형식 열과 해당 값을 검색할 수 있습니다. 그러나 XML 데이터 형식 열의 내용을 XML로 사용하려면 먼저 내용을 XmlReader 형식에 할당해야 합니다.

자세한 내용 및 예제 코드는 Microsoft .NET Framework 2.0 SDK 설명서의 "데이터 판독기에서 XML 열 값"을 참조하세요.

ADO.NET 사용하여 매개 변수의 xml 형식 열 처리

ADO.NET 및 .NET Framework에서 매개 변수로 전달된 xml 데이터 형식을 처리하려면 SqlXml 데이터 형식의 인스턴스로 값을 제공할 수 있습니다. SQL Server의 xml 데이터 형식 열은 다른 열 및 데이터 형식(예: 문자열 또는 수)과 동일한 방식으로 매개 변수 값을 허용할 수 있으므로 특별한 처리는 필요하지 않습니다.

자세한 내용 및 예제 코드는 Microsoft .NET Framework 2.0 SDK 설명서의 "XML 값으로 명령 매개 변수"를 참조하세요.

참고 항목