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