sql >> Databasteknik >  >> RDS >> Sqlserver

Lägg till en beräknad kolumn till en befintlig tabell i SQL Server

Den här artikeln visar hur man använder T-SQL för att lägga till en beräknad kolumn till en befintlig tabell i SQL Server.

En beräknad kolumn är en virtuell kolumn som använder ett uttryck för att beräkna dess värde. Uttrycket kommer vanligtvis att använda data från andra kolumner. En beräknad kolumn lagras inte fysiskt i tabellen om den inte är markerad med PERSISTED .

Exempel 1 – Skapa en tabell UTAN en beräknad kolumn

Låt oss först skapa en tabell utan en beräknad kolumn.

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;

Resultat:

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

Exempel 2 – Lägg till en beräknad kolumn

Låt oss nu lägga till en beräknad kolumn.

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

Vi har precis lagt till en beräknad kolumn som heter TotalValue som multiplicerar värdet i Quantity kolumnen med värdet i Price kolumn.

Så här händer när vi väljer tabellens innehåll nu:

SELECT *
FROM Products;

Resultat:

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

Exempel 3 – Uppdatera ett värde

Nu, om ett värde uppdateras i Quantity eller Price kolumner, kommer detta att påverka det totala värdet som returneras av den beräknade kolumnen.

Exempel:

UPDATE Products
SET Quantity = 4
WHERE ProductId = 1;

SELECT *
FROM Products;

Resultat:

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

  1. MySQL:NULL vs

  2. Hantera MySQL Long Running Queries

  3. Datum/tidsstämpel för att spela in när en post lades till i tabellen?

  4. Speciella öar