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 đâyCREATE 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