Artikel ini menunjukkan cara menggunakan T-SQL untuk membuat kolom terhitung di SQL Server.
kolom terhitung adalah kolom virtual yang menggunakan ekspresi untuk menghitung nilainya. Ekspresi biasanya akan menggunakan data dari kolom lain. Kolom yang dihitung tidak disimpan secara fisik dalam tabel kecuali jika ditandai PERSISTED
.
Contoh 1 – Membuat Tabel dengan Kolom Terhitung
Berikut adalah contoh membuat tabel dengan kolom yang dihitung, memasukkan data, lalu memilih isi tabel.
CREATE TABLE Products ( ProductID int IDENTITY (1,1) NOT NULL, ProductName varchar(255), Quantity smallint, Price money, TotalValue AS Quantity * Price ); INSERT INTO Products (ProductName, Quantity, Price) VALUES ('Hammer', 5, 10), ('Corkscrew', 2, 7.50), ('Kettle', 3, 25.15); SELECT * FROM Products;
Hasil:
+-------------+---------------+------------+---------+--------------+ | 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 | +-------------+---------------+------------+---------+--------------+
Dalam hal ini, kolom terakhir adalah kolom yang dihitung. Ini mengalikan kolom kuantitas dengan kolom harga. Ini memungkinkan kami untuk mendapatkan nilai total produk yang saat ini tersedia.
Contoh 2 – Membuat Kolom Komputasi Persisten
Anda dapat membuat kolom komputasi tetap dengan menambahkan PERSISTED
argumen. Ini akan menghasilkan nilai yang dihitung secara fisik disimpan dalam tabel. Jika tidak bertahan, maka nilainya dihitung setiap kali Anda membaca kolom yang dihitung.
Berikut adalah contoh kode yang sama dengan yang sebelumnya, kecuali kali ini saya membuat kolom komputasi tetap:
CREATE TABLE Products ( ProductID int IDENTITY (1,1) NOT NULL, ProductName varchar(255), Quantity smallint, Price money, TotalValue AS Quantity * Price PERSISTED );
Satu-satunya perbedaan adalah PERSISTED
argumen.
Contoh 3 – Perbarui Nilai
Sekarang jika nilai diperbarui dalam Quantity
atau Price
kolom, ini akan mempengaruhi nilai total yang dikembalikan oleh kolom yang dihitung. Ini akan terjadi apakah kolom tersebut tetap ada atau tidak.
Jika seseorang membeli palu misalnya, ini akan mempengaruhi nilai total yang dikembalikan oleh kolom yang dihitung:
UPDATE Products SET Quantity = 4 WHERE ProductId = 1; SELECT * FROM Products;
Hasil:
+-------------+---------------+------------+---------+--------------+ | 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 | +-------------+---------------+------------+---------+--------------+