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