SQL_VARIANT_PROPERTY (Transact-SQL)
Zwraca wartość podstawowy typ danych i inne informacje o sql_variant wartości.
Składnia
SQL_VARIANT_PROPERTY ( expression , property )
Argumenty
expression
To wyrażenie typu sql_variant.property
Zawiera nazwę sql_variant właściwość , dla którego informacje są dostarczane.propertyjest varchar(128), i może to być jedna z następujących wartości.Wartość
Opis
Typ podstawowy typu sql_variant zwrócone
Typ bazy
SQL ServerTyp danych, takich jak:
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 = wejściowy jest nieprawidłowy.
Precision
Liczba cyfr numeryczny podstawowy typ danych:
datetime = 23
smalldatetime = 16
float = 53
real = 24
decimal(p,s) and numeric (p,s) = p
money = 19
smallmoney = 10
bigint = 19
int = 10
smallint = 5
tinyint = 3
bit = 1
Wszystkie inne typy = 0
int
NULL = wejściowy jest nieprawidłowy.
Skala
Liczba cyfr po prawej stronie przecinka dziesiętnego numerycznego podstawowy typ danych:
decimal(p,s) and numeric (p,s) = s
moneyand smallmoney = 4
datetime = 3
wszystkie inne typy = 0
int
NULL = wejściowy jest nieprawidłowy.
Kolekcja TotalBytes
Liczba bajtów wymaganych do przechowywania metadane i danych wartości.Te informacje mogłyby być użyteczne przy sprawdzaniu maksymalne boczne danych w sql_variant kolumna.Jeśli wartość jest większa niż 900, utworzenia indeksu nie powiedzie się.
int
NULL = wejściowy jest nieprawidłowy.
Sortowanie
Reprezentuje sortowanie danej sql_variant wartości.
sysname
NULL = wejściowy jest nieprawidłowy.
Element MaxLength
To typ danych maksymalną długość, w bajtach.Na przykład MaxLength z nvarchar(50) wynosi 100, MaxLength z int jest 4.
int
NULL = wejściowy jest nieprawidłowy.
Zwracane typy
sql_variant
Przykłady
Poniższy przykład pobiera SQL_VARIANT_PROPERTY informacje o colA wartość 46279.1 gdzie colB =1689, zważywszy, że tableA jest colA jest typu sql_variant i 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
Oto zestaw wyników.Należy zauważyć, że każdy z tych trzech wartości sql_variant.
Base Type Precision Scale
--------- --------- -----
decimal 8 2
(1 row(s) affected)