W SQL Server możesz użyć SQL_VARIANT_PROPERTY()
funkcja zwracająca podstawowe informacje o typie danych z sql_variant wartość.
Funkcja przyjmuje dwa argumenty:wariant_sql wartość i właściwość, dla której należy podać informacje.
Przykład 1 – Podstawowe użycie
Oto przykład, który demonstruje podstawową koncepcję i zastosowanie.
DECLARE @var sql_variant = 'Hey!'; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Wynik:
+------------+ | BaseType | |------------| | varchar | +------------+
W tym przypadku typem podstawowym jest varchar .
Oto, co się stanie, jeśli zmienię wartość na inny typ:
DECLARE @var sql_variant = $1.50; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Wynik:
+------------+ | BaseType | |------------| | money | +------------+
Tym razem typ podstawowy to pieniądze .
Przykład 2 – Inne właściwości
W chwili pisania tego tekstu istnieje sześć możliwych argumentów dla tej funkcji. Innymi słowy, możesz uzyskać informacje o sześciu różnych właściwościach przekazywanej wartości.
Oto przykład, który wykorzystuje wszystkie sześć:
DECLARE @var sql_variant = SYSDATETIME(); SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType, SQL_VARIANT_PROPERTY(@var, 'Precision') AS Precision, SQL_VARIANT_PROPERTY(@var, 'Scale') AS Scale, SQL_VARIANT_PROPERTY(@var, 'TotalBytes') AS TotalBytes, SQL_VARIANT_PROPERTY(@var, 'Collation') AS Collation, SQL_VARIANT_PROPERTY(@var, 'MaxLength') AS MaxLength;
Wynik:
+------------+-------------+---------+--------------+-------------+-------------+ | BaseType | Precision | Scale | TotalBytes | Collation | MaxLength | |------------+-------------+---------+--------------+-------------+-------------| | datetime2 | 27 | 7 | 11 | NULL | 8 | +------------+-------------+---------+--------------+-------------+-------------+