sql >> Databáze >  >> RDS >> Sqlserver

Jak získat definici vypočítaného sloupce v SQL Server pomocí T-SQL

V SQL Server můžete použít T-SQL k získání definice počítaného sloupce dotazem na sys.computed_columns zobrazení systémového katalogu.

Příklad 1 – Vrácení jednoho vypočítaného sloupce

Zde je příklad, který jsem spustil ve svém testovacím prostředí. V tomto případě jsem zúžil výsledky pouze na jeden vypočítaný sloupec.

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

Výsledek:

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

V případě, že máte více počítaných sloupců se stejným názvem, můžete také přidat název tabulky do WHERE klauzule:

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

Příklad 2 – Vrátit všechny vypočítané sloupce

V tomto příkladu vracím všechny vypočítané sloupce spolu s jejich definicí.

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

Výsledek:

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

Příklad 3 – Zahrnout schéma

V tomto příkladu se připojím k sys.objects zahrnout schéma do výsledků.

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;

Výsledek:

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

  1. Android sqlite, limit počtu řádků v databázi

  2. Připojení Oracle k SQL Serveru z Windows

  3. Aktualizujte více tabulek v SQL Server pomocí INNER JOIN

  4. Riziko při používání dynamické paměti v rámci Hyper-V