Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Hinzufügen einer berechneten Spalte zu einer vorhandenen Tabelle in SQL Server

Dieser Artikel demonstriert die Verwendung von T-SQL zum Hinzufügen einer berechneten Spalte zu einer vorhandenen Tabelle in SQL Server.

Eine berechnete Spalte ist eine virtuelle Spalte, die einen Ausdruck verwendet, um ihren Wert zu berechnen. Der Ausdruck verwendet normalerweise Daten aus anderen Spalten. Eine berechnete Spalte wird nicht physisch in der Tabelle gespeichert, es sei denn, sie ist mit PERSISTED gekennzeichnet .

Beispiel 1 – Erstellen Sie eine Tabelle OHNE berechnete Spalte

Zuerst erstellen wir eine Tabelle ohne eine berechnete Spalte.

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;

Ergebnis:

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

Beispiel 2 – Hinzufügen einer berechneten Spalte

Jetzt fügen wir eine berechnete Spalte hinzu.

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

Wir haben gerade eine berechnete Spalte namens TotalValue hinzugefügt die den Wert in Quantity multipliziert Spalte mit dem Wert im Price Säule.

Folgendes passiert, wenn wir jetzt den Inhalt der Tabelle auswählen:

SELECT *
FROM Products;

Ergebnis:

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

Beispiel 3 – Aktualisieren eines Werts

Jetzt, wenn ein Wert in der Quantity aktualisiert wird oder Price Spalten, wirkt sich dies auf den Gesamtwert aus, der von der berechneten Spalte zurückgegeben wird.

Beispiel:

UPDATE Products
SET Quantity = 4
WHERE ProductId = 1;

SELECT *
FROM Products;

Ergebnis:

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