Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erhalten Sie die Definition einer berechneten Spalte in SQL Server mit T-SQL

In SQL Server können Sie T-SQL verwenden, um die Definition für eine berechnete Spalte abzurufen, indem Sie sys.computed_columns abfragen Systemkatalogansicht.

Beispiel 1 – Eine berechnete Spalte zurückgeben

Hier ist ein Beispiel, das ich in meiner Testumgebung ausgeführt habe. In diesem Fall habe ich die Ergebnisse auf nur eine berechnete Spalte eingegrenzt.

SELECT definition
FROM sys.computed_columns
WHERE name = 'TotalValue';

Ergebnis:

+----------------------+
| definition           |
|----------------------|
| ([Quantity]*[Price]) |
+----------------------+

Falls Sie mehrere berechnete Spalten mit demselben Namen haben, können Sie den Tabellennamen auch zum WHERE hinzufügen Klausel:

SELECT definition
FROM sys.computed_columns
WHERE name = 'TotalValue'
AND OBJECT_NAME(object_id) = 'Products';

Beispiel 2 – Alle berechneten Spalten zurückgeben

In diesem Beispiel gebe ich alle berechneten Spalten zusammen mit ihrer Definition zurück.

SELECT 
  OBJECT_NAME(object_id) AS [Table],
  name AS [Computed Column],
  definition
FROM sys.computed_columns;

Ergebnis:

+----------+-------------------+--------------------------------------+
| Table    | Computed Column   | definition                           |
|----------+-------------------+--------------------------------------|
| Person   | FullName          | (concat([FirstName],' ',[LastName])) |
| Products | TotalValue        | ([Quantity]*[Price])                 |
+----------+-------------------+--------------------------------------+

Beispiel 3 – Schema einbinden

In diesem Beispiel verbinde ich mich mit sys.objects um das Schema in die Ergebnisse aufzunehmen.

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;

Ergebnis:

+----------+----------+-------------------+--------------------------------------+
| Schema   | Table    | Computed Column   | definition                           |
|----------+----------+-------------------+--------------------------------------|
| dbo      | Person   | FullName          | (concat([FirstName],' ',[LastName])) |
| dbo      | Products | TotalValue        | ([Quantity]*[Price])                 |
+----------+----------+-------------------+--------------------------------------+