Тази статия демонстрира как да използвате T-SQL за добавяне на изчислена колона към съществуваща таблица в SQL Server.
изчислена колона е виртуална колона, която използва израз за изчисляване на стойността си. Изразът обикновено използва данни от други колони. Изчислена колона не се съхранява физически в таблицата, освен ако не е маркирана PERSISTED .
Пример 1 – Създайте таблица БЕЗ изчислена колона
Първо, нека създадем таблица без изчислена колона.
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;
Резултат:
+-------------+---------------+------------+---------+ | ProductID | ProductName | Quantity | Price | |-------------+---------------+------------+---------| | 1 | Hammer | 5 | 10.0000 | | 2 | Corkscrew | 2 | 7.5000 | | 3 | Kettle | 3 | 25.1500 | +-------------+---------------+------------+---------+
Пример 2 – Добавяне на изчислена колона
Сега нека добавим изчислена колона.
ALTER TABLE Products ADD TotalValue AS (Quantity * Price);
Току-що добавихме изчислена колона, наречена TotalValue което умножава стойността в Quantity колона със стойността в Price колона.
Ето какво се случва, когато изберем съдържанието на таблицата сега:
SELECT * FROM Products;
Резултат:
+-------------+---------------+------------+---------+--------------+ | 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 | +-------------+---------------+------------+---------+--------------+
Пример 3 – Актуализиране на стойност
Сега, ако стойността се актуализира в Quantity или Price колони, това ще повлияе на общата стойност, върната от изчислената колона.
Пример:
UPDATE Products SET Quantity = 4 WHERE ProductId = 1; SELECT * FROM Products;
Резултат:
+-------------+---------------+------------+---------+--------------+ | 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 | +-------------+---------------+------------+---------+--------------+