Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengubah Kolom yang Ada menjadi Kolom Terhitung di SQL Server (Contoh T-SQL)

Artikel ini menunjukkan cara menggunakan T-SQL untuk mengubah kolom yang ada menjadi kolom yang dihitung 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 TANPA Kolom Terhitung

Pertama, mari kita buat tabel tanpa kolom yang dihitung.

CREATE TABLE Person ( PersonID int IDENTITY (1,1) NOT NULL, FirstName varchar(70), LastName varchar(70), FullName varchar(140) );INSERT INTO Person (FirstName, LastName, FullName)VALUES (' Homer', 'Seinfeld', 'Homer Seinfeld'), ('Bart', 'Costanza', 'Bart Costanza'), ('Marge', 'Kramer', 'Marge Kramer');SELECT *FROM Person; 

Hasil:

+-------------+-------------+------------+------ ----------+| ID Orang | Nama Depan | Nama Belakang | Nama Lengkap ||-------------+-------------+------------+------- ---------|| 1 | Homer | Seinfeld | Homer Seinfeld || 2 | Bart | Costanza | Bart Costanza || 3 | Marge | Kramer | Marge Kramer |+------------+-------------+------------+------ ----------+

Anda dapat melihat bahwa saya menggandakan ketika saya memasukkan data. Nama lengkap adalah kombinasi dari nama depan dan nama belakang, dan saya mengetik ulang data ini untuk setiap baris.

Ini juga dapat menyebabkan masalah saat memperbarui tabel. Saya harus ingat untuk memperbarui dua kolom setiap kali seseorang mengubah nama depan atau kedua mereka (dan tiga kolom jika mereka mengubah keduanya).

Ini adalah kandidat yang baik untuk kolom yang dihitung.

Contoh 2 – Ubah Kolom menjadi Kolom Terhitung

Untuk mengubah kolom menjadi kolom yang dihitung, Anda harus menghapus kolom terlebih dahulu, lalu membuatnya dengan definisi baru.

Berikut cara mengubah FullName kolom ke kolom yang dihitung.

ALTER TABLE Person DROP COLUMN FullName;ALTER TABLE Person ADD FullName AS (CONCAT(FirstName, ' ', LastName));

Kami baru saja “mengubah” kolom bernama FullName ke kolom yang dihitung. Ini menggabungkan FirstName dan LastName kolom.

Inilah yang terjadi ketika kita memilih isi tabel:

PILIH *FROM Orang;

Hasil:

+-------------+-------------+------------+------ ----------+| ID Orang | Nama Depan | Nama Belakang | Nama Lengkap ||-------------+-------------+------------+------- ---------|| 1 | Homer | Seinfeld | Homer Seinfeld || 2 | Bart | Costanza | Bart Costanza || 3 | Marge | Kramer | Marge Kramer |+------------+-------------+------------+------ ----------+

Contoh 3 – Perbarui Nilai

Sekarang, jika nilai diperbarui di FirstName atau LastName kolom, ini akan mempengaruhi nilai yang dikembalikan oleh kolom yang dihitung. Tidak perlu memperbaruinya dalam dua kolom.

Contoh:

PERBARUI PersonSET LastName ='Bourne'WHERE PersonId =3;SELECT *FROM Person;

Hasil:

+-------------+-------------+------------+------ ----------+| ID Orang | Nama Depan | Nama Belakang | Nama Lengkap ||-------------+-------------+------------+------- ---------|| 1 | Homer | Seinfeld | Homer Seinfeld || 2 | Bart | Costanza | Bart Costanza || 3 | Marge | Bourne | Marge Bourne |+------------+-------------+------------+------ ----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengubah skema db ke dbo

  2. Mendapatkan peringatan:Nilai nol dihilangkan dengan operasi SET agregat atau lainnya

  3. Hapus semua spasi dari string di SQL Server

  4. Bagaimana Fungsi SPACE() Bekerja di SQL Server (T-SQL)

  5. Cara menggunakan parameter dengan LIKE di Sql Server Compact Edition