SQL_VARIANT_PROPERTY(Transact-SQL)
sql_variant 값에 대한 기본 데이터 형식 및 기타 정보를 반환합니다.
구문
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)