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

Làm thế nào để biết nếu một cột được tính toán là xác định trong SQL Server

Khi bạn tạo một cột được tính toán trong SQL Server, biểu thức bạn sử dụng cho cột sẽ là xác định hoặc không xác định. Điều này có thể có ý nghĩa, chẳng hạn như bạn có thể sử dụng nó trong một chỉ mục hay không hoặc gắn cờ nó là “vẫn tồn tại”.

Cột xác định là cột sẽ trả về cùng một giá trị cho một tập hợp giá trị đầu vào cụ thể và có cùng trạng thái của cơ sở dữ liệu. Một cột không xác định có thể trả về một giá trị khác ngay cả khi được cung cấp cùng một đầu vào ngay cả khi trạng thái cơ sở dữ liệu vẫn giữ nguyên. Ví dụ:một hàm trả về ngày hiện tại là không xác định, vì nó sẽ trả về một giá trị khác nhau mỗi ngày.

Bạn có thể sử dụng COLUMNPROPERTY() hàm với IsDeterministic để tìm hiểu xem một cột được tính có xác định hay không.

Ví dụ

Đây là một ví dụ để chứng minh.

SELECT 
  COLUMNPROPERTY(
    OBJECT_ID('dbo.Products'), 
    'TotalValue', 
    'IsDeterministic') 
    AS IsDeterministic;

Kết quả:

+-------------------+
| IsDeterministic   |
|-------------------|
| 1                 |
+-------------------+

Trong trường hợp này, TotalValue từ dbo.Products bảng xác định. Nếu không, kết quả sẽ là 0 .

IsDeterministic thuộc tính chỉ áp dụng cho các cột được tính toán và cột chế độ xem.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Biểu thức chính quy trong máy chủ SQL Server?

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

  3. Sự khác biệt giữa sys.objects, sys.system_objects và sys.all_objects trong SQL Server

  4. Chuyển đổi số nguyên thành hex và hex thành số nguyên

  5. Tìm các đối tượng được tham chiếu trong SQL Server:sys.dm_sql_referenced_entities