XML 데이터 내 관계형 데이터 바인딩

적용 대상: SQL Server Azure SQL 데이터베이스Azure SQL Managed Instance

xml 데이터 형식 변수 또는 열에 대해 xml 데이터 형식 메서드를 지정할 수 있습니다. 예를 들어 query() 메서드(xml Data Type)는 XML 인스턴스에 대해 지정된 XQuery를 실행합니다. 이 방식으로 XML을 구성하면 비-XML 유형의 열이나 Transact-SQL 변수로부터 값을 가져올 수 있습니다. 이러한 과정을 XML 내 관계형 데이터 바인딩이라고 합니다.

XML 내 비-XML 관계형 데이터를 바인딩하기 위해 SQL Server 데이터베이스 엔진은 다음과 같은 의사 함수를 제공합니다.

이러한 함수는 XML 내 관계형 값을 제공할 때마다 xml 데이터 형식 메서드와 함께 사용할 수 있습니다.

xml, CLR 사용자 정의 형식, datetime, smalldatetime, text, ntext, sql_variantimage 형식의 열 또는 변수에 있는 데이터를 참조하는 데는 이러한 함수를 사용할 수 없습니다.

또한 이 바인딩은 읽기 전용으로만 사용됩니다. 즉, 이러한 함수를 사용하는 열에는 데이터를 기록할 수 없습니다. 예를 들어 sql:variable("@x")="some expression"은 허용되지 않습니다.

예제: sql:variable()을 사용하는 도메인 간 쿼리

이 예에서는 애플리케이션에서 sql:variable() 을 사용하여 쿼리를 매개 변수화하는 방법을 보여 줍니다. ISBN은 SQL 변수 @isbn을 사용하여 전달됩니다. 상수를 sql:variable() 로 바꿈으로써 0-7356-1588-2인 ISBN뿐만 아니라 다른 모든 ISBN을 검색하는 데 쿼리를 사용할 수 있습니다.

DECLARE @isbn VARCHAR(20)  
SET     @isbn = '0-7356-1588-2'  
SELECT  xCol  
FROM    T  
WHERE   xCol.exist ('/book/@ISBN[. = sql:variable("@isbn")]') = 1  

sql:column() 을 비슷한 방식으로 사용하면 추가 이점이 있습니다. 비용 기반 쿼리 최적화 프로그램에서 결정되는 것과 같이 효율성을 위해 열에 대해 인덱스를 사용할 수 있습니다. 또한 계산 열에서 승격된 속성을 저장할 수 있습니다.

참고 항목