Share via


사용자 정의 유형 인스턴스 사용 및 수정

업데이트: 2005년 12월 5일

다음과 같은 방법으로 사용자 정의 유형을 사용할 수 있습니다.

  • 사용자 정의 유형 열을 포함하는 테이블 만들기
  • 사용자 정의 유형 열 값 삽입 및 수정
  • 변수나 매개 변수로 사용자 정의 유형 사용

사용자 정의 유형 열이 있는 테이블 만들기

열 이름을 제공하고 유형 이름을 참조하여 사용자 정의 유형 열이 있는 테이블을 만들 수 있습니다. 이는 시스템 기반의 데이터 형식이나 별칭 유형으로 구성된 열을 만드는 방법과 유사합니다. CLR(공용 언어 런타임) 사용자 정의 유형의 열을 만들려면 해당 유형에 대한 REFERENCES 권한이 있어야 합니다.

사용자 정의 유형 열을 포함하는 테이블을 만들려면

사용자 정의 유형 열 값 삽입 및 수정

열 값을 삽입하고 수정할 수 있으며 사용자 정의 유형 변수 값과 매개 변수 값을 변경할 수 있습니다.

[!참고] 사용자 정의 유형을 만든 후에는 변경할 수 없습니다. 변경 내용으로 인해 테이블이나 인덱스의 데이터가 무효화될 수 있기 때문입니다. 유형을 수정하려면 해당 유형을 삭제하고 다시 만들거나 WITH UNCHECKED DATA 절을 사용하여 ALTER ASSEMBLY 문을 실행해야 합니다. 자세한 내용은 ALTER ASSEMBLY(Transact-SQL)를 참조하십시오.

다음 작업을 수행하여 사용자 정의 유형 열의 값을 삽입하거나 수정할 수 있습니다.

  • 사용자 정의 유형이 해당 형식으로의 암시적 또는 명시적인 변환을 지원하는 경우 SQL Server 시스템 데이터 형식의 값을 제공합니다. 다음 예에서는 문자열로부터의 명시적 변환을 통해 사용자 정의 유형인 Point 열의 값을 업데이트하는 방법을 보여 줍니다.

    UPDATE Cities
    SET Location = CONVERT(Point, '12.3:46.2')
    WHERE Name = 'Anchorage'
    
  • **변경자(mutator)**로 표시된 사용자 정의 유형의 메서드를 호출하여 업데이트를 수행합니다. 다음 예에서는 해당 유형의 인스턴스 상태를 업데이트하는 SetXY라는 point 유형의 변경자 메서드를 호출합니다.

    UPDATE Cities
    SET Location.SetXY(23.5, 23.5)
    WHERE Name = 'Anchorage'
    

    [!참고] Transact-SQL Null 값에서 변경자 메서드를 호출하거나 변경자 메서드에 의해 생성된 새 값이 Null이면 SQL Server에서 오류가 반환됩니다.

  • 사용자 정의 유형의 public 필드나 속성의 값을 수정합니다. 값을 제공하는 식을 속성 유형으로 암시적으로 변환할 수 있어야 합니다. 다음 예에서는 사용자 정의 유형 pointX 속성 값을 수정합니다.

    UPDATE Cities
    SET Location.X = 23.5
    WHERE Name = 'Anchorage'
    

    동일한 사용자 정의 유형 열의 다른 속성을 수정하려면 UPDATE 문을 실행하거나 해당 유형의 변경자 메서드를 호출합니다.

다음 예에서는 Point 유형 값을 테이블에 삽입합니다.

INSERT INTO Cities (Name, Location)
VALUES ('Anchorage', CONVERT(Point, '23.5, 23.5'))

테이블이나 뷰에 사용자 정의 유형 값을 삽입하려면

UPDATE(Transact-SQL)

변수나 매개 변수로 사용자 정의 유형 사용

Transact-SQL 변수나 Transact-SQL 또는 Microsoft .NET Framework 함수나 프로시저의 매개 변수를 사용자 정의 유형으로 선언할 수 있습니다. 다음 규칙이 적용됩니다.

  • 해당 유형에 대한 EXECUTE 권한이 있어야 합니다.
  • 스키마 바인딩을 사용하여 사용자 정의 유형 선언이 포함된 함수, 저장 프로시저 또는 트리거를 만들 경우 해당 유형에 대한 REFERENCES 권한이 있어야 합니다.

한 부분으로 된 이름을 사용할 경우 SQL Server에서 다음 순서대로 유형 참조가 조회됩니다.

  1. 현재 데이터베이스의 현재 사용자 스키마
  2. 현재 데이터베이스의 dbo 스키마
  3. 시스템 네이티브 유형 공간

Transact-SQL 변수나 함수 또는 프로시저의 변수로 사용자 정의 유형을 선언하려면

사용자 정의 유형 사용에 대한 제한 사항

사용자 정의 유형을 만들고 사용할 때 다음 사항을 고려하십시오.

  • SQL Server에서 사용자 정의 유형을 만들 때 길이, 소수 자릿수, 전체 자릿수 또는 기타 메타데이터를 정의할 수 없습니다.
  • 열, 변수 또는 매개 변수를 다른 데이터베이스에 정의된 사용자 정의 유형으로 선언할 수 없습니다. 자세한 내용은 데이터베이스에서 사용자 정의 유형 사용을 참조하십시오.
  • 사용자 정의 유형이 이전에 정의한 유형과 동일한지 여부를 확인하려는 경우 유형 ID를 비교하지 마십시오. 유형 ID는 사용자 정의 유형의 수명 동안만 유효하며 회수될 수 있기 때문입니다. 대신 CLR 유형 이름, 네 부분으로 된 어셈블리 이름 및 어셈블리 바이트를 비교합니다.
  • sql_variant 열에는 사용자 정의 유형의 인스턴스를 사용할 수 없습니다.
  • 사용자 정의 유형을 CLR 프로시저, 함수 또는 트리거나 파티션 함수의 기본값으로 사용할 수 없습니다.
  • table 변수의 계산 열에서는 사용자 정의 유형을 참조할 수 없습니다.

참고 항목

개념

CLR 사용자 정의 유형 작업

관련 자료

CLR User-Defined Types

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2005년 12월 5일

새로운 내용
  • "사용자 정의 유형 사용에 대한 제한 사항" 섹션에 table 변수의 계산 열에서 사용자 정의 유형을 참조할 수 없다는 내용을 추가했습니다.