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

Přidat vypočítaný sloupec do existující tabulky na serveru SQL Server

Tento článek ukazuje, jak pomocí T-SQL přidat vypočítaný sloupec do existující tabulky na serveru SQL.

Vypočítaný sloupec je virtuální sloupec, který používá výraz k výpočtu své hodnoty. Výraz bude obvykle používat data z jiných sloupců. Vypočítaný sloupec není v tabulce fyzicky uložen, pokud není označen PERSISTED .

Příklad 1 – Vytvoření tabulky BEZ vypočítaného sloupce

Nejprve vytvořte tabulku bez vypočítaný sloupec.

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;

Výsledek:

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

Příklad 2 – Přidání vypočítaného sloupce

Nyní přidáme vypočítaný sloupec.

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

Právě jsme přidali vypočítaný sloupec s názvem TotalValue který násobí hodnotu v Quantity s hodnotou v Price sloupec.

Když nyní vybereme obsah tabulky, stane se toto:

SELECT *
FROM Products;

Výsledek:

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

Příklad 3 – Aktualizace hodnoty

Nyní, pokud je hodnota aktualizována v Quantity nebo Price sloupců, ovlivní to celkovou hodnotu vrácenou vypočítaným sloupcem.

Příklad:

UPDATE Products
SET Quantity = 4
WHERE ProductId = 1;

SELECT *
FROM Products;

Výsledek:

+-------------+---------------+------------+---------+--------------+
| 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. Je možné uváznutí při aktualizaci a odstraňování různých řádků v tabulce?

  2. SQLite JSON_TYPE()

  3. Vytvoření vysoce dostupné databáze pro Moodle pomocí replikace MySQL

  4. Jak získat údaje o prodeji za poslední 3 měsíce v MySQL