W SQL Server można użyć T-SQL, aby uzyskać definicję kolumny wyliczanej, wysyłając zapytanie do sys.computed_columns
widok katalogu systemowego.
Przykład 1 – Zwróć jedną obliczoną kolumnę
Oto przykład, który uruchomiłem w moim środowisku testowym. W tym przypadku zawęziłem wyniki tylko do jednej obliczonej kolumny.
SELECT definition FROM sys.computed_columns WHERE name = 'TotalValue';
Wynik:
+----------------------+ | definition | |----------------------| | ([Quantity]*[Price]) | +----------------------+
Jeśli masz wiele kolumn obliczanych o tej samej nazwie, możesz również dodać nazwę tabeli do WHERE
klauzula:
SELECT definition FROM sys.computed_columns WHERE name = 'TotalValue' AND OBJECT_NAME(object_id) = 'Products';
Przykład 2 – Zwróć wszystkie przeliczone kolumny
W tym przykładzie zwracam wszystkie obliczone kolumny wraz z ich definicją.
SELECT OBJECT_NAME(object_id) AS [Table], name AS [Computed Column], definition FROM sys.computed_columns;
Wynik:
+----------+-------------------+--------------------------------------+ | Table | Computed Column | definition | |----------+-------------------+--------------------------------------| | Person | FullName | (concat([FirstName],' ',[LastName])) | | Products | TotalValue | ([Quantity]*[Price]) | +----------+-------------------+--------------------------------------+
Przykład 3 – Dołącz schemat
W tym przykładzie dołączam za pomocą sys.objects
aby dołączyć schemat do wyników.
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;
Wynik:
+----------+----------+-------------------+--------------------------------------+ | Schema | Table | Computed Column | definition | |----------+----------+-------------------+--------------------------------------| | dbo | Person | FullName | (concat([FirstName],' ',[LastName])) | | dbo | Products | TotalValue | ([Quantity]*[Price]) | +----------+----------+-------------------+--------------------------------------+