この記事では、T-SQLを使用して、SQLServerの既存のテーブルに計算列を追加する方法を示します。
計算列 式を使用してその値を計算する仮想列です。式は通常、他の列のデータを使用します。計算列は、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 | +-------------+---------------+------------+---------+--------------+