적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
분석 플랫폼 시스템(PDW)
Microsoft Fabric의 SQL 데이터베이스
sql_variant 값에 대한 기본 데이터 형식 및 기타 정보를 반환합니다.
Syntax
SQL_VARIANT_PROPERTY ( expression , property )
Note
이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.
Arguments
expression
sql_variant 형식의 식입니다.
property
정보를 제공할 sql_variant 속성의 이름이 포함됩니다.
속성은 varchar( 128 ) 이며 다음 값 중 하나일 수 있습니다.
| Value | Description | 반환된 sql_variant의 기본 형식 |
|---|---|---|
| BaseType | 다음과 같은 SQL Server 데이터 형식 bigint binary bit char date datetime datetime2 datetimeoffset decimal float int money nchar numeric nvarchar real smalldatetime smallint smallmoney time tinyint uniqueidentifier varbinary varchar |
sysname NULL = 입력이 잘못되었습니다. |
| Precision | 숫자 기본 데이터 형식의 전체 자릿수 날짜 = 10 날짜 = 23 날짜 2 = 27 datetime2 (s) = 19 시 s = 0, 그렇지 않으면 s + 20 Datetimeoffset = 34 DateTimeOffset (s) = 26 시 s = 0, 그렇지 않으면 s + 27 smalldatetime = 16 시간 = 16 시간 (s) = 8 일 때 s = 0일 때, 그렇지 않으면 s + 9 float = 53 실수 = 24 decimal 및 numeric = 18 decimal (p,s) 및 numeric (p,s) = p 돈 = 19 스몰머니 = 10 빅틴 트 = 19 정수 = 10 smallint = 5 tinyint = 3 비트 = 1 기타 모든 유형 = 0 |
int NULL = 입력이 잘못되었습니다. |
| Scale | 숫자 기반 데이터 형식의 소수점 이하 자릿수 decimal 및 numeric = 0 decimal (p,s) 및 numeric (p,s) = s money 및 smallmoney = 4 날짜 = 3 datetime2 = 7 날짜 2 (s) = s (0 - 7) Datetimeoffset = 7 DateTimeoffset (s) = s (0 - 7) 시간 = 7 시간 (s) = s (0 - 7) 기타 모든 유형 = 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
Examples
A. 테이블에서 sql_variant 사용
다음 예에서는 SQL_VARIANT_PROPERTY에 colA 및 46279.1 형식의 colB가 있는 경우 =1689tableA일 때 colA 값 sql_variant에 대한 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)
B. 변수로 sql_variant 사용
다음 예에서는 변수 SQL_VARIANT_PROPERTY에 대한 @v1 정보를 검색합니다.
DECLARE @v1 sql_variant;
SET @v1 = 'ABC';
SELECT @v1;
SELECT SQL_VARIANT_PROPERTY(@v1, 'BaseType');
SELECT SQL_VARIANT_PROPERTY(@v1, 'MaxLength');