sql >> Database teknologi >  >> RDS >> Sqlserver

Tilføj en beregnet kolonne til en eksisterende tabel i SQL Server

Denne artikel viser, hvordan man bruger T-SQL til at tilføje en beregnet kolonne til en eksisterende tabel i SQL Server.

En beregnet kolonne er en virtuel kolonne, der bruger et udtryk til at beregne dens værdi. Udtrykket vil typisk bruge data fra andre kolonner. En beregnet kolonne gemmes ikke fysisk i tabellen, medmindre den er markeret med PERSISTED .

Eksempel 1 – Opret en tabel UDEN en beregnet kolonne

Lad os først oprette en tabel uden en beregnet kolonne.

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

Eksempel 2 – Tilføj en beregnet kolonne

Lad os nu tilføje en beregnet kolonne.

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

Vi har lige tilføjet en beregnet kolonne kaldet TotalValue der multiplicerer værdien i Quantity kolonne med værdien i Price kolonne.

Her er, hvad der sker, når vi vælger tabellens indhold 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      |
+-------------+---------------+------------+---------+--------------+

Eksempel 3 – Opdater en værdi

Hvis nu en værdi er opdateret i Quantity eller Price kolonner, vil dette påvirke den samlede værdi, der returneres af den beregnede kolonne.

Eksempel:

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. Betyder udvikling af kontaktoplysninger at ændre din database?

  2. Oprettelse af rollebaseret adgangskontrol i MongoDB

  3. Opret en SQL Server-database med Azure Data Studio

  4. Postgres-forespørgselsoptimering (tvinger en indeksscanning)