계산 열에서 XML 사용
적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
XML 인스턴스는 계산 열의 원본이나 계산 열의 유형으로 표시될 수 있습니다. 이 문서의 예제에서는 계산 열에서 XML을 사용하는 방법을 보여 줍니다.
XML 열에서 계산 열 만들기
다음 CREATE TABLE
문 xml
에서 형식 열(col2
)은 다음에서 col1
계산됩니다.
CREATE TABLE T ( col1 varchar(max), col2 AS CAST(col1 AS xml) );
xml 데이터 형식은 다음 CREATE TABLE
문과 같이 계산 열을 만들 때 원본으로 표시될 수도 있습니다.
CREATE TABLE T ( col1 xml, col2 as cast(col1 as varchar(1000) ));
다음 예에서와 같이 xml
유형 열에서 값을 추출하여 계산 열을 만들 수 있습니다. xml 데이터 형식 메서드는 계산 열을 만드는 데 직접 사용할 수 없으므로 먼저 XML 인스턴스에서 값을 반환하는 함수(my_udf
)를 정의합니다. 함수는 형식의 메서드를 value()
래핑합니다 xml
. 그런 다음 계산 열의 CREATE TABLE
문에 함수 이름이 지정됩니다.
참고 항목
이 함수를 기반으로 지속형 계산 열을 만들려면 함수 자체가 결정적이어야 합니다. 자세한 내용은 결정적 함수와 비결정적 함수를 참조하세요.
CREATE FUNCTION my_udf(@var xml) returns int
AS BEGIN
RETURN @var.value('(/ProductDescription/@ProductModelID)[1]' , 'int')
END;
GO
-- Use the function in CREATE TABLE.
CREATE TABLE T (col1 xml, col2 as dbo.my_udf(col1) );
GO
-- Try adding a row.
INSERT INTO T values('<ProductDescription ProductModelID="1" />');
GO
-- Verify results.
SELECT col2, col1
FROM T;
이전 예제와 마찬가지로 다음 예제에서는 계산 열에 대한 xml 형식 인스턴스를 반환하는 함수를 정의합니다. 함수 query()
내에서 xml 데이터 형식의 메서드는 형식 매개 변수에서 xml
값을 검색합니다.
CREATE FUNCTION my_udf(@var xml)
RETURNS xml AS
BEGIN
RETURN @var.query('ProductDescription/Features')
END;
다음 CREATE TABLE
문 Col2
에서는 함수에서 반환되는 XML 데이터(<Features>
요소)를 사용하는 계산 열입니다.
CREATE TABLE T (Col1 xml, Col2 as dbo.my_udf(Col1) );
-- Insert a row in table T.
INSERT INTO T VALUES('
<ProductDescription ProductModelID="1" >
<Features>
<Feature1>description</Feature1>
<Feature2>description</Feature2>
</Features>
</ProductDescription>');
-- Verify the results.
SELECT *
FROM T;
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기