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

Zwróć wszystkie nieobliczone kolumny z tabeli w SQL Server

W SQL Server możesz użyć sys.columns widok katalogu systemowego, aby zwrócić listę nieobliczonych kolumn z tabeli.

Przez „nieobliczone” rozumiem po prostu kolumny, które nie są kolumnami obliczanymi.

Przykład

Oto przykład do zademonstrowania.

SELECT
  name AS [Column],
  TYPE_NAME(user_type_id) AS [Data Type],
  max_length,
  is_computed
FROM sys.columns
WHERE OBJECT_NAME(object_id) = 'Products'
AND is_computed = 0;

Wynik:

+-------------+-------------+--------------+---------------+
| Column      | Data Type   | max_length   | is_computed   |
|-------------+-------------+--------------+---------------|
| ProductID   | int         | 4            | 0             |
| ProductName | varchar     | 255          | 0             |
| Quantity    | smallint    | 2            | 0             |
| Price       | money       | 8            | 0             |
+-------------+-------------+--------------+---------------+

sys.columns widok zwraca wiele kolumn, więc zawęziłem je tutaj do zaledwie kilku.

W tym przypadku nazwa tabeli to Products . Gdybym nie filtrował według tego, otrzymałbym bardzo dużą listę kolumn ze wszystkich tabel (w tym tabel systemowych), widoków, funkcji z wartościami z tabeli itp.

Uwzględniłem is_computed kolumna tutaj tylko po to, abyś mógł zobaczyć, że te kolumny mają 0 w tej kolumnie.

Zdarza mi się wiedzieć, że ta tabela ma obliczoną kolumnę o nazwie TotalValue . Oto zapytanie ponownie, ale tym razem zwracające wszystkie kolumny (w tym kolumny obliczone).

SELECT
  name AS [Column],
  TYPE_NAME(user_type_id) AS [Data Type],
  max_length,
  is_computed
FROM sys.columns
WHERE OBJECT_NAME(object_id) = 'Products';

Wynik:

+-------------+-------------+--------------+---------------+
| Column      | Data Type   | max_length   | is_computed   |
|-------------+-------------+--------------+---------------|
| ProductID   | int         | 4            | 0             |
| ProductName | varchar     | 255          | 0             |
| Quantity    | smallint    | 2            | 0             |
| Price       | money       | 8            | 0             |
| TotalValue  | money       | 8            | 1             |
+-------------+-------------+--------------+---------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Znajdź domyślną wartość kolumny z zapytaniem

  2. nvarchar(max) vs NText

  3. Różnica w obsłudze przestrzeni między Oracle a SQL Server

  4. Jak zrobić rozróżnianie wielkości liter GROUP BY?

  5. Idź, gdy sterownik SQL Server nie może się pomyślnie połączyć, logowanie nie powiodło się