V SQL Server můžete použít T-SQL k získání definice počítaného sloupce dotazem na sys.computed_columns
zobrazení systémového katalogu.
Příklad 1 – Vrácení jednoho vypočítaného sloupce
Zde je příklad, který jsem spustil ve svém testovacím prostředí. V tomto případě jsem zúžil výsledky pouze na jeden vypočítaný sloupec.
SELECT definition FROM sys.computed_columns WHERE name = 'TotalValue';
Výsledek:
+----------------------+ | definition | |----------------------| | ([Quantity]*[Price]) | +----------------------+
V případě, že máte více počítaných sloupců se stejným názvem, můžete také přidat název tabulky do WHERE
klauzule:
SELECT definition FROM sys.computed_columns WHERE name = 'TotalValue' AND OBJECT_NAME(object_id) = 'Products';
Příklad 2 – Vrátit všechny vypočítané sloupce
V tomto příkladu vracím všechny vypočítané sloupce spolu s jejich definicí.
SELECT OBJECT_NAME(object_id) AS [Table], name AS [Computed Column], definition FROM sys.computed_columns;
Výsledek:
+----------+-------------------+--------------------------------------+ | Table | Computed Column | definition | |----------+-------------------+--------------------------------------| | Person | FullName | (concat([FirstName],' ',[LastName])) | | Products | TotalValue | ([Quantity]*[Price]) | +----------+-------------------+--------------------------------------+
Příklad 3 – Zahrnout schéma
V tomto příkladu se připojím k sys.objects
zahrnout schéma do výsledků.
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;
Výsledek:
+----------+----------+-------------------+--------------------------------------+ | Schema | Table | Computed Column | definition | |----------+----------+-------------------+--------------------------------------| | dbo | Person | FullName | (concat([FirstName],' ',[LastName])) | | dbo | Products | TotalValue | ([Quantity]*[Price]) | +----------+----------+-------------------+--------------------------------------+