sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan får du en beregnet kolonnes definition i SQL Server ved hjælp af T-SQL

I SQL Server kan du bruge T-SQL til at få definitionen for en beregnet kolonne ved at forespørge sys.computed_columns systemkatalogvisning.

Eksempel 1 – Returner én beregnet kolonne

Her er et eksempel, som jeg kørte i mit testmiljø. I dette tilfælde indsnævrede jeg resultaterne til kun én beregnet kolonne.

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

Resultat:

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

Hvis du har flere beregnede kolonner med det samme navn, kan du også tilføje tabelnavnet til WHERE klausul:

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

Eksempel 2 – Returner alle beregnede kolonner

I dette eksempel returnerer jeg alle beregnede kolonner sammen med deres definition.

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

Resultat:

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

Eksempel 3 – Inkluder skemaet

I dette eksempel tilslutter jeg mig med sys.objects at inkludere skemaet i resultaterne.

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;

Resultat:

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

  1. ORA-00900:ugyldig SQL-sætning - når en procedure køres i oracle 10g

  2. Udskrivning til skærm i .sql-fil postgres

  3. Sammenlægning af datafiler med Statistica, del 1

  4. Sådan finder du de databasesamlinger, der understøttes af din SQL Server-instans