Skenario:
Anda bekerja sebagai Pengembang SQL Server untuk salah satu Firma Hukum. Anda telah membuat tabel dbo.Customer dengan menggunakan definisi di bawah iniCREATE TABLE Customer ( CustomerId INT Identity(1, 1) ,FirstName VARCHAR(50) ,LastName VARCHAR(50) ,Age SMALLINT ,PhoneNumber CHAR(9) ,DOB DATE ,Gender CHAR(1) )
Anda harus memiliki Nama Lengkap yang terdiri dari Nama Depan dan Nama Belakang. Anda tidak ingin menyimpan data duplikat ke dalam tabel dengan menambahkan kolom baru untuk Nama Lengkap. Apa pilihan Anda?
Tergantung Umur, Kami ingin Menambahkan Kolom Baru, panggil IsSenior dan tandai 1 jika di atas 65 lain 0.
Solusi:
SQL Server menyediakan Computed Column, yaitu kolom virtual dan tidak menyimpan data kecuali jika ditandai sebagai Bertahan. Artinya, kita dapat membuat kolom komputasi (Nama lengkap) yang akan menggunakan data Nama Depan dan Nama Belakang. Dengan membuat Computed Column kita tidak perlu lagi menyimpan data duplikat untuk kolom Full Name.Mari kita buat Computed Columns Full Name dan IsSenior sesuai dengan kriteria kita.
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 )Kami menggabungkan Nama Depan dan Nama Belakang untuk Nama Lengkap dan menulis Pernyataan Kasus untuk Kolom Komputer IsSenior. Mari kita lanjutkan dan masukkan beberapa record.
insert into dbo.Customer(FirstName,LastName,Age) Values('Aamir','Shahzad',66), ('Raza','M',44)
Perhatikan bahwa saya belum memasukkan apa pun untuk Kolom Nama Lengkap dan IsSenior. Nilai untuk kolom ini akan dihitung ketika kita akan memilih data.
Cara menambahkan Kolom Terhitung di Tabel SQL Server - Tutorial T-SQL
Jika anda perlu menambahkan Kolom Terhitung ke Tabel keluar, anda dapat menggunakan sintaks di bawah ini
Alter Table SchemaName.TableName
Tambahkan ColumnName AS Logic( seperti FistName +''+LastName)
Katakanlah jika kita ingin tambahkan FullName Computer Column ke tabel Customer, kita bisa menggunakan script di bawah ini.
Alter table dbo.Customer Add FullName AS FirstName+' '+LastName
Lepaskan Kolom Terhitung dari Tabel SQL Server:
Sintaksis untuk drop Computed atau kolom normal adalah sama.
Alter Table SchemaName.TableName
drop Column ColumnName
Katakanlah jika kita ingin drop Nama lengkap dihitung kolom dari dbo.Customer Table. Kita bisa menggunakan script di bawah ini.
Alter table dbo.Customer drop column FullName