Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak uzyskać definicję kolumny wyliczanej w SQL Server za pomocą T-SQL

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])                 |
+----------+----------+-------------------+--------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dynamicznie mapować kolumny wejściowe i wyjściowe w SSIS?

  2. Usuń konto pocztowe bazy danych (SSMS)

  3. Jak dodać nową kolumnę do istniejącej tabeli w SQL Server (T-SQL)

  4. SQL Server - podsłuchiwanie parametrów

  5. Tabele z listą SQL Server:Jak wyświetlić wszystkie tabele