Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thêm một cột được tính toán vào một bảng hiện có trong SQL Server

Bài viết này trình bày cách sử dụng T-SQL để thêm cột được tính toán vào bảng hiện có trong SQL Server.

Một cột được tính toán là một cột ảo sử dụng một biểu thức để tính giá trị của nó. Biểu thức thường sẽ sử dụng dữ liệu từ các cột khác. Một cột được tính toán không được lưu trữ vật lý trong bảng trừ khi nó được đánh dấu PERSISTED .

Ví dụ 1 - Tạo Bảng KHÔNG CÓ Cột Tính toán

Trước tiên, hãy tạo một bảng không có một cột được tính toán.

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;

Kết quả:

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

Ví dụ 2 - Thêm cột được tính toán

Bây giờ, hãy thêm một cột được tính toán.

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

Chúng tôi vừa thêm một cột được tính toán có tên là TotalValue nhân giá trị trong Quantity với giá trị trong Price cột.

Đây là những gì sẽ xảy ra khi chúng tôi chọn nội dung của bảng ngay bây giờ:

SELECT *
FROM Products;

Kết quả:

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

Ví dụ 3 - Cập nhật giá trị

Bây giờ, nếu một giá trị được cập nhật trong Quantity hoặc Price , điều này sẽ ảnh hưởng đến tổng giá trị được trả về bởi cột được tính toán.

Ví dụ:

UPDATE Products
SET Quantity = 4
WHERE ProductId = 1;

SELECT *
FROM Products;

Kết quả:

+-------------+---------------+------------+---------+--------------+
| 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHÈN VÀO VÀ CHỌN VÀO

  2. Chức năng so với Thủ tục được lưu trữ

  3. UNION ALL có đảm bảo thứ tự của tập kết quả không

  4. Gọi một API từ thủ tục được lưu trữ của SQL Server

  5. Máy chủ SQL CHỌN VÀO @variable?