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

Trả lại tất cả các cột không được tính toán từ một bảng trong SQL Server

Trong SQL Server, bạn có thể sử dụng sys.columns chế độ xem danh mục hệ thống để trả về danh sách các cột không được tính toán từ một bảng.

"Không được tính toán", ý tôi chỉ đơn giản là các cột không phải là các cột được tính toán.

Ví dụ

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

SELECT
  name AS [Column],
  TYPE_NAME(user_type_id) AS [Data Type],
  max_length,
  is_computed
FROM sys.columns
WHERE OBJECT_NAME(object_id) = 'Products'
AND is_computed = 0;

Kết quả:

+-------------+-------------+--------------+---------------+
| Column      | Data Type   | max_length   | is_computed   |
|-------------+-------------+--------------+---------------|
| ProductID   | int         | 4            | 0             |
| ProductName | varchar     | 255          | 0             |
| Quantity    | smallint    | 2            | 0             |
| Price       | money       | 8            | 0             |
+-------------+-------------+--------------+---------------+

sys.columns chế độ xem trả về rất nhiều cột, vì vậy tôi đã thu hẹp chúng ở đây chỉ còn một số ít.

Trong trường hợp này, tên bảng là Products . Nếu tôi không lọc theo cách đó, tôi sẽ nhận được một danh sách rất lớn các cột từ tất cả các bảng (bao gồm cả bảng hệ thống), chế độ xem, các hàm được định giá trong bảng, v.v.

Tôi đã bao gồm is_computed ở đây để bạn có thể thấy rằng các cột này có 0 trong cột đó.

Tôi tình cờ biết rằng bảng này có một cột được tính toán có tên là TotalValue . Đây là truy vấn một lần nữa, nhưng lần này trả về tất cả các cột (bao gồm cả các cột được tính toán).

SELECT
  name AS [Column],
  TYPE_NAME(user_type_id) AS [Data Type],
  max_length,
  is_computed
FROM sys.columns
WHERE OBJECT_NAME(object_id) = 'Products';

Kết quả:

+-------------+-------------+--------------+---------------+
| Column      | Data Type   | max_length   | is_computed   |
|-------------+-------------+--------------+---------------|
| ProductID   | int         | 4            | 0             |
| ProductName | varchar     | 255          | 0             |
| Quantity    | smallint    | 2            | 0             |
| Price       | money       | 8            | 0             |
| TotalValue  | money       | 8            | 1             |
+-------------+-------------+--------------+---------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểm tra xem một đối tượng có phải là khóa chính với OBJECTPROPERTY () trong SQL Server hay không

  2. Thực thi một thủ tục được lưu trữ trong một thủ tục được lưu trữ khác trong máy chủ SQL

  3. Câu lệnh UPDATE xung đột với ràng buộc THAM KHẢO - Hướng dẫn SQL Server / TSQL Phần 76

  4. Truy vấn trên nhiều cơ sở dữ liệu trên cùng một máy chủ

  5. Kết nối Genero với SQL Server