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

Cách thêm cột được tính toán trong bảng SQL Server - Hướng dẫn SQL Server / T-SQL Phần 47

Tình huống:

Bạn đang làm việc với tư cách là Nhà phát triển SQL Server cho một trong những Công ty Luật. Bạn đã tạo bảng dbo.Customer bằng cách sử dụng định nghĩa dưới đây

CREATE TABLE Customer (
    CustomerId INT Identity(1, 1)
    ,FirstName VARCHAR(50)
    ,LastName VARCHAR(50)
    ,Age SMALLINT
    ,PhoneNumber CHAR(9)
    ,DOB DATE
    ,Gender CHAR(1)
    )

Bạn cần có Tên đầy đủ bao gồm Tên và Họ. Bạn không muốn lưu dữ liệu trùng lặp vào bảng bằng cách thêm cột mới cho Họ và Tên. Tùy chọn của bạn là gì?

Cũng tùy thuộc vào Độ tuổi, Chúng tôi muốn Thêm cột mới gọi IsSenior và đánh dấu nó là 1 nếu trên 65 khác 0.

Giải pháp:

SQL Server cung cấp cho chúng tôi Cột tính toán, đó là cột ảo và nó không lưu trữ dữ liệu trừ khi được đánh dấu là Kiên trì. Điều đó có nghĩa là chúng ta có thể tạo cột được tính toán (Họ và tên) sẽ sử dụng dữ liệu Tên và Họ. Bằng cách tạo Cột Tính toán, chúng tôi không phải lưu dữ liệu trùng lặp cho cột Tên đầy đủ.

Hãy tiếp tục và tạo các Cột Tính toán Họ và Tên đầy đủ tùy theo tiêu chí của chúng tôi.

CREATE TABLE Customer (
    CustomerId INT Identity(1, 1)
    ,FirstName VARCHAR(50)
    ,LastName VARCHAR(50)
    ,Age SMALLINT
    ,PhoneNumber CHAR(9)
    ,DOB DATE
    ,Gender CHAR(1)
    ,FullName AS FirstName + ' ' + LastName
    ,IsSenior AS CASE 
        WHEN Age > 65
            THEN 1
        ELSE 0
        END
    )
 Chúng tôi đã ghép Họ và Tên cho Họ và viết Tuyên bố Trường hợp cho Cột Máy tính IsSenior. Hãy tiếp tục và chèn một vài bản ghi. 

  insert into dbo.Customer(FirstName,LastName,Age)
    Values('Aamir','Shahzad',66),
    ('Raza','M',44)

Nhận thấy rằng tôi chưa chèn bất kỳ thứ gì cho các Cột FullName và IsSenior. Giá trị cho các cột này sẽ được tính toán khi chúng tôi chọn dữ liệu.

Cách thêm các cột được tính toán trong bảng SQL Server - Hướng dẫn T-SQL

Nếu bạn cần thêm Cột Tính toán vào thoát khỏi Bảng, bạn có thể sử dụng cú pháp dưới đây. thêm Cột Máy tính FullName vào bảng Khách hàng, chúng tôi có thể sử dụng tập lệnh bên dưới.

Alter table dbo.Customer
    Add FullName AS FirstName+' '+LastName
 
Thả cột được tính toán từ bảng SQL Server:
Cú pháp để thả cột Tính toán hoặc cột bình thường giống nhau.

Alter Table SchemaName.TableName
drop Column ColumnName

Hãy cho biết nếu chúng ta muốn thả Cột được tính toán FullName từ bảng dbo.Customer. Chúng ta có thể sử dụng tập lệnh bên dưới.

Alter table dbo.Customer
    drop column FullName


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đặt hồ sơ công khai mặc định cho thư cơ sở dữ liệu (SSMS)

  2. Cách chuyển đổi từ định dạng ngày này sang định dạng ngày khác trong SQL Server bằng CONVERT ()

  3. Tạo cơ sở dữ liệu theo chương trình trong SQL Server

  4. Truy vấn liệt kê số lượng bản ghi trong mỗi bảng trong cơ sở dữ liệu

  5. Chuyển đổi tệp SQL2008 RDL sang SQL2005