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

Cách nhận định nghĩa cột được tính toán trong SQL Server bằng T-SQL

Trong SQL Server, bạn có thể sử dụng T-SQL để lấy định nghĩa cho một cột được tính bằng cách truy vấn sys.computed_columns chế độ xem danh mục hệ thống.

Ví dụ 1 - Trả về một cột được tính toán

Đây là một ví dụ mà tôi đã chạy trong môi trường thử nghiệm của mình. Trong trường hợp này, tôi thu hẹp kết quả chỉ thành một cột được tính toán.

SELECT definition
FROM sys.computed_columns
WHERE name = 'TotalValue';

Kết quả:

+----------------------+
| definition           |
|----------------------|
| ([Quantity]*[Price]) |
+----------------------+

Trong trường hợp bạn có nhiều cột được tính có cùng tên, bạn cũng có thể thêm tên bảng vào WHERE mệnh đề:

SELECT definition
FROM sys.computed_columns
WHERE name = 'TotalValue'
AND OBJECT_NAME(object_id) = 'Products';

Ví dụ 2 - Trả lại Tất cả các Cột được Tính toán

Trong ví dụ này, tôi trả về tất cả các cột đã tính cùng với định nghĩa của chúng.

SELECT 
  OBJECT_NAME(object_id) AS [Table],
  name AS [Computed Column],
  definition
FROM sys.computed_columns;

Kết quả:

+----------+-------------------+--------------------------------------+
| Table    | Computed Column   | definition                           |
|----------+-------------------+--------------------------------------|
| Person   | FullName          | (concat([FirstName],' ',[LastName])) |
| Products | TotalValue        | ([Quantity]*[Price])                 |
+----------+-------------------+--------------------------------------+

Ví dụ 3 - Bao gồm Lược đồ

Trong ví dụ này, tôi kết hợp với sys.objects để đưa lược đồ vào kết quả.

SELECT 
  SCHEMA_NAME(o.schema_id) AS [Schema],
  OBJECT_NAME(cc.object_id) AS [Table],
  cc.name AS [Computed Column],
  cc.definition
FROM sys.computed_columns cc
INNER JOIN sys.objects o
ON o.object_id = cc.object_id;

Kết quả:

+----------+----------+-------------------+--------------------------------------+
| Schema   | Table    | Computed Column   | definition                           |
|----------+----------+-------------------+--------------------------------------|
| dbo      | Person   | FullName          | (concat([FirstName],' ',[LastName])) |
| dbo      | Products | TotalValue        | ([Quantity]*[Price])                 |
+----------+----------+-------------------+--------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL:mệnh đề in trong thủ tục được lưu trữ:cách chuyển giá trị

  2. TSQL:Tạo một dạng xem truy cập nhiều cơ sở dữ liệu

  3. Cơ sở dữ liệu sao lưu SQL Server Express | Cách lập lịch trình tự động hóa và dọn dẹp sao lưu SQL Express

  4. Làm cách nào để loại trừ Ngày cuối tuần trong truy vấn SQL Server?

  5. 6 cách kiểm tra kích thước của cơ sở dữ liệu trong SQL Server bằng T-SQL