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

Dodaj kolumnę wyliczoną do istniejącej tabeli w SQL Server

W tym artykule pokazano, jak używać T-SQL do dodawania obliczonej kolumny do istniejącej tabeli w SQL Server.

kolumna obliczona to wirtualna kolumna, która używa wyrażenia do obliczenia swojej wartości. Wyrażenie zazwyczaj używa danych z innych kolumn. Obliczona kolumna nie jest fizycznie przechowywana w tabeli, chyba że jest oznaczona jako PERSISTED .

Przykład 1 – Utwórz tabelę BEZ kolumny obliczonej

Najpierw utwórzmy stół bez kolumna obliczeniowa.

CREATE TABLE Products
  (
    ProductID int IDENTITY (1,1) NOT NULL,
    ProductName varchar(255), 
    Quantity smallint,
    Price money
  );

INSERT INTO Products (ProductName, Quantity, Price)
VALUES 
  ('Hammer', 5, 10),
  ('Corkscrew', 2, 7.50),
  ('Kettle', 3, 25.15);

SELECT *
FROM Products;

Wynik:

+-------------+---------------+------------+---------+
| ProductID   | ProductName   | Quantity   | Price   |
|-------------+---------------+------------+---------|
| 1           | Hammer        | 5          | 10.0000 |
| 2           | Corkscrew     | 2          | 7.5000  |
| 3           | Kettle        | 3          | 25.1500 |
+-------------+---------------+------------+---------+

Przykład 2 – Dodaj kolumnę wyliczaną

Teraz dodajmy kolumnę obliczeniową.

ALTER TABLE Products 
ADD TotalValue AS (Quantity * Price);

Właśnie dodaliśmy obliczoną kolumnę o nazwie TotalValue która mnoży wartość w Quantity kolumna z wartością w Price kolumna.

Oto, co się stanie, gdy teraz wybierzemy zawartość tabeli:

SELECT *
FROM Products;

Wynik:

+-------------+---------------+------------+---------+--------------+
| ProductID   | ProductName   | Quantity   | Price   | TotalValue   |
|-------------+---------------+------------+---------+--------------|
| 1           | Hammer        | 5          | 10.0000 | 50.0000      |
| 2           | Corkscrew     | 2          | 7.5000  | 15.0000      |
| 3           | Kettle        | 3          | 25.1500 | 75.4500      |
+-------------+---------------+------------+---------+--------------+

Przykład 3 – Aktualizacja wartości

Teraz, jeśli wartość zostanie zaktualizowana w Quantity lub Price kolumn, wpłynie to na całkowitą wartość zwróconą przez obliczoną kolumnę.

Przykład:

UPDATE Products
SET Quantity = 4
WHERE ProductId = 1;

SELECT *
FROM Products;

Wynik:

+-------------+---------------+------------+---------+--------------+
| ProductID   | ProductName   | Quantity   | Price   | TotalValue   |
|-------------+---------------+------------+---------+--------------|
| 1           | Hammer        | 4          | 10.0000 | 40.0000      |
| 2           | Corkscrew     | 2          | 7.5000  | 15.0000      |
| 3           | Kettle        | 3          | 25.1500 | 75.4500      |
+-------------+---------------+------------+---------+--------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Poznawanie różnych ograniczeń w SQL Server

  2. Jak naprawić „Serwer nie jest skonfigurowany do dostępu do danych” w SQL Server

  3. Jak rzeczy i „Dla ścieżki XML” działają w programie SQL Server?

  4. SQL Server v.Next:Wydajność STRING_AGG, część 2

  5. Jak uzyskać łączną sumę