SQL_VARIANT_PROPERTY(Transact-SQL)

sql_variant 값에 대한 기본 데이터 형식 및 기타 정보를 반환합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

SQL_VARIANT_PROPERTY ( expression , property )

인수

  • expression
    sql_variant 형식의 식입니다.

  • property
    정보를 제공할 sql_variant 속성의 이름입니다. property는 varchar(128)이며 다음 값 중 하나일 수 있습니다.

    설명

    반환된 sql_variant의 기본 형식

    BaseType

    다음과 같은 SQL Server 데이터 형식

    bigint

    binary

    char

    date

    datetime

    datetime2

    datetimeoffset

    decimal

    float

    int

    money

    nchar

    numeric

    nvarchar

    real

    smalldatetime

    smallint

    smallmoney

    time

    tinyint

    uniqueidentifier

    varbinary

    varchar

    sysname

    NULL = 입력이 잘못되었습니다.

    Precision

    숫자 기본 데이터 형식의 전체 자릿수

    datetime = 23

    smalldatetime = 16

    float = 53

    real = 24

    decimal (p,s) 및 numeric (p,s) = p

    money = 19

    smallmoney = 10

    bigint = 19

    int = 10

    smallint = 5

    tinyint = 3

    bit = 1

    기타 모든 유형 = 0

    int

    NULL = 입력이 잘못되었습니다.

    Scale

    숫자 기반 데이터 형식의 소수점 이하 자릿수

    decimal (p,s) 및 numeric (p,s) = s

    money 및 smallmoney = 4

    datetime = 3

    기타 모든 유형 = 0

    int

    NULL = 입력이 잘못되었습니다.

    TotalBytes

    메타데이터 및 값의 모든 데이터를 저장하는 데 필요한 바이트 수입니다. 이 정보는 sql_variant 열의 데이터에 대한 최대치를 확인하는 데 유용합니다. 값이 900보다 크면 인덱스를 만들 수 없습니다.

    int

    NULL = 입력이 잘못되었습니다.

    Collation

    특정 sql_variant 값의 데이터 정렬을 나타냅니다.

    sysname

    NULL = 입력이 잘못되었습니다.

    MaxLength

    최대 데이터 형식 길이(바이트)입니다. 예를 들어 nvarchar(50)의 MaxLength는 100이고, int의 MaxLength는 4입니다.

    int

    NULL = 입력이 잘못되었습니다.

반환 형식

sql_variant

다음 예에서는 colB =1689인 경우 colA의 값인 46279.1에 대한 SQL_VARIANT_PROPERTY 정보를 검색합니다. 여기에서 tableA는 sql_variant 형식의 colA와 int 형식의 colB를 포함합니다.

CREATE   TABLE tableA(colA sql_variant, colB int)
INSERT INTO tableA values ( cast (46279.1 as decimal(8,2)), 1689)
SELECT   SQL_VARIANT_PROPERTY(colA,'BaseType') AS 'Base Type',
         SQL_VARIANT_PROPERTY(colA,'Precision') AS 'Precision',
         SQL_VARIANT_PROPERTY(colA,'Scale') AS 'Scale'
FROM      tableA
WHERE      colB = 1689

결과 집합은 다음과 같습니다. 이 세 값은 각각 sql_variant입니다.

Base Type    Precision    Scale
---------    ---------    -----
decimal      8           2

(1 row(s) affected)