In SQL Server puoi usare T-SQL per ottenere la definizione di una colonna calcolata eseguendo una query su sys.computed_columns
vista catalogo di sistema.
Esempio 1:restituisce una colonna calcolata
Ecco un esempio che ho eseguito nel mio ambiente di test. In questo caso ho ristretto i risultati a una sola colonna calcolata.
SELECT definition FROM sys.computed_columns WHERE name = 'TotalValue';
Risultato:
+----------------------+ | definition | |----------------------| | ([Quantity]*[Price]) | +----------------------+
Nel caso in cui tu abbia più colonne calcolate con lo stesso nome, puoi anche aggiungere il nome della tabella a WHERE
clausola:
SELECT definition FROM sys.computed_columns WHERE name = 'TotalValue' AND OBJECT_NAME(object_id) = 'Products';
Esempio 2 – Restituisci tutte le colonne calcolate
In questo esempio restituisco tutte le colonne calcolate, insieme alla loro definizione.
SELECT OBJECT_NAME(object_id) AS [Table], name AS [Computed Column], definition FROM sys.computed_columns;
Risultato:
+----------+-------------------+--------------------------------------+ | Table | Computed Column | definition | |----------+-------------------+--------------------------------------| | Person | FullName | (concat([FirstName],' ',[LastName])) | | Products | TotalValue | ([Quantity]*[Price]) | +----------+-------------------+--------------------------------------+
Esempio 3:includi lo schema
In questo esempio mi unisco a sys.objects
per includere lo schema nei risultati.
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;
Risultato:
+----------+----------+-------------------+--------------------------------------+ | Schema | Table | Computed Column | definition | |----------+----------+-------------------+--------------------------------------| | dbo | Person | FullName | (concat([FirstName],' ',[LastName])) | | dbo | Products | TotalValue | ([Quantity]*[Price]) | +----------+----------+-------------------+--------------------------------------+