В SQL Server можете да използвате T-SQL, за да получите дефиницията за изчислена колона, като направите заявка за sys.computed_columns
изглед на системен каталог.
Пример 1 – Върнете една изчислена колона
Ето пример, който пуснах в моята тестова среда. В този случай стесних резултатите само до една изчислена колона.
SELECT definition FROM sys.computed_columns WHERE name = 'TotalValue';
Резултат:
+----------------------+ | definition | |----------------------| | ([Quantity]*[Price]) | +----------------------+
В случай, че имате няколко изчислени колони с едно и също име, можете също да добавите името на таблицата към WHERE
клауза:
SELECT definition FROM sys.computed_columns WHERE name = 'TotalValue' AND OBJECT_NAME(object_id) = 'Products';
Пример 2 – Връщане на всички изчислени колони
В този пример връщам всички изчислени колони, заедно с тяхната дефиниция.
SELECT OBJECT_NAME(object_id) AS [Table], name AS [Computed Column], definition FROM sys.computed_columns;
Резултат:
+----------+-------------------+--------------------------------------+ | Table | Computed Column | definition | |----------+-------------------+--------------------------------------| | Person | FullName | (concat([FirstName],' ',[LastName])) | | Products | TotalValue | ([Quantity]*[Price]) | +----------+-------------------+--------------------------------------+
Пример 3 – Включване на схемата
В този пример се присъединявам с sys.objects
за да включите схемата в резултатите.
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;
Резултат:
+----------+----------+-------------------+--------------------------------------+ | Schema | Table | Computed Column | definition | |----------+----------+-------------------+--------------------------------------| | dbo | Person | FullName | (concat([FirstName],' ',[LastName])) | | dbo | Products | TotalValue | ([Quantity]*[Price]) | +----------+----------+-------------------+--------------------------------------+