Trong SQL Server, bạn có thể sử dụng SQL_VARIANT_PROPERTY()
hàm trả về thông tin kiểu dữ liệu cơ sở từ sql_variant giá trị.
Hàm chấp nhận hai đối số: sql_variant giá trị và thuộc tính mà thông tin sẽ được cung cấp.
Ví dụ 1 - Cách sử dụng cơ bản
Dưới đây là một ví dụ minh họa khái niệm và cách sử dụng cơ bản.
DECLARE @var sql_variant = 'Hey!'; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Kết quả:
+------------+ | BaseType | |------------| | varchar | +------------+
Trong trường hợp này, loại cơ sở là varchar .
Đây là những gì sẽ xảy ra nếu tôi thay đổi giá trị thành một loại khác:
DECLARE @var sql_variant = $1.50; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Kết quả:
+------------+ | BaseType | |------------| | money | +------------+
Lần này loại cơ sở là tiền .
Ví dụ 2 - Thuộc tính khác
Khi viết bài này, có sáu đối số có thể xảy ra cho hàm này. Nói cách khác, bạn có thể nhận thông tin về sáu thuộc tính khác nhau của giá trị được truyền vào.
Dưới đây là một ví dụ sử dụng cả sáu:
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;
Kết quả:
+------------+-------------+---------+--------------+-------------+-------------+ | BaseType | Precision | Scale | TotalBytes | Collation | MaxLength | |------------+-------------+---------+--------------+-------------+-------------| | datetime2 | 27 | 7 | 11 | NULL | 8 | +------------+-------------+---------+--------------+-------------+-------------+