Тази статия демонстрира как да използвате 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 | +-------------+---------------+------------+---------+--------------+