sql >> Database >  >> RDS >> Sqlserver

Hoe u de definitie van een berekende kolom in SQL Server kunt krijgen met behulp van T-SQL

In SQL Server kunt u T-SQL gebruiken om de definitie voor een berekende kolom te krijgen door de sys.computed_columns op te vragen. systeemcatalogusweergave.

Voorbeeld 1 – Retourneer één berekende kolom

Hier is een voorbeeld dat ik in mijn testomgeving heb uitgevoerd. In dit geval heb ik de resultaten teruggebracht tot slechts één berekende kolom.

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

Resultaat:

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

Als u meerdere berekende kolommen met dezelfde naam heeft, kunt u de tabelnaam ook toevoegen aan de WHERE clausule:

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

Voorbeeld 2 – Alle berekende kolommen retourneren

In dit voorbeeld geef ik alle berekende kolommen terug, samen met hun definitie.

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

Resultaat:

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

Voorbeeld 3 – Voeg het schema toe

In dit voorbeeld doe ik mee met sys.objects om het schema in de resultaten op te nemen.

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;

Resultaat:

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

  1. Detecteren of waarde een getal is in MySQL

  2. Een cluster-naar-cluster-replicatie configureren voor Percona XtraDB-cluster of MariaDB-cluster

  3. psql:kan geen verbinding maken met de server:geen bestand of map (Mac OS X)

  4. Migreren van Postgres naar SQL Server 2008