Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Trả lại Kiểu dữ liệu cơ sở từ SQL _ Giá trị biến thể trong SQL Server

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           |
+------------+-------------+---------+--------------+-------------+-------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách ngăn chặn tấn công SQL Injection bằng cách bảo mật

  2. Các bản sửa lỗi liên quan đến hiệu suất cho SQL Server 2012

  3. Tải tệp CSV lên máy chủ SQL

  4. ADO.NET gọi Thủ tục lưu trữ T-SQL gây ra SqlTimeoutException

  5. Khóa ngoại có cải thiện hiệu suất truy vấn không?