sql >> Database >  >> RDS >> Sqlserver

Retourneer alle niet-berekende kolommen uit een tabel in SQL Server

In SQL Server kunt u de sys.columns systeemcatalogusweergave om een ​​lijst met niet-berekende kolommen uit een tabel te retourneren.

Met "niet-berekend" bedoel ik eenvoudig kolommen die geen berekende kolommen zijn.

Voorbeeld

Hier is een voorbeeld om te demonstreren.

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;

Resultaat:

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

De sys.columns view geeft veel kolommen terug, dus ik heb ze hier beperkt tot slechts een handvol.

In dit geval is de tabelnaam Products . Als ik daar niet op zou filteren, zou ik een zeer grote lijst met kolommen krijgen van alle tabellen (inclusief systeemtabellen), weergaven, tabelwaardige functies, enz.

Ik heb de is_computed . toegevoegd kolom hier zodat u kunt zien dat deze kolommen 0 . hebben in die kolom.

Ik weet toevallig dat deze tabel een berekende kolom heeft met de naam TotalValue . Hier is de query opnieuw, maar deze keer worden alle kolommen geretourneerd (inclusief berekende kolommen).

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';

Resultaat:

+-------------+-------------+--------------+---------------+
| 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. SQL SELECTEER MAX

  2. SCD-type 3

  3. Hoe MariaDB op CentOS 8 te installeren en te beveiligen

  4. Hoe MariaDB op Rocky Linux en AlmaLinux te installeren?