Cara Menambahkan kolom dengan nilai default ke tabel yang ada di SQL Server

Di SQL server, Untuk menambahkan kolom dengan nilai default ke tabel yang sudah ada, gunakan ALTER Tabel ADD nama kolom dengan batasan NULL/NOT NULL dengan nilai DEFAULT.

Berikut sintaks query sql server yang dapat digunakan untuk menambahkan kolom dengan nilai default pada tabel yang sudah ada.

ALTER TABLE {TABLENAME} 
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} 
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES

Mari kita lihat sebuah contoh untuk memahaminya lebih lanjut.

Menambahkan kolom Non-Nullable dengan nilai default untuk record yang sudah ada

Perhatikan tabel Employee di SQL server, dan jika kita ingin menambahkan kolom upah minimum dengan nilai default sebagai 1000USD, gunakan query di bawah ini.

ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL DEFAULT(1000)
GO

Query di atas akan menambahkan kolom baru MINIMUM_WAGE pada tabel Employee dan mengisi kolom pada baris yang sudah ada dengan nilai default, yaitu 1000.

Karena kita telah menambahkan constraint NOT NULL.

Jika Anda tidak menambahkan constraint NOT NULL, semua baris yang ada akan menjadi NULL dan nilai DEFAULT yang diberikan tidak akan berpengaruh.

ALTER TABLE Employee
ADD MINIMUM_WAGE int DEFAULT(1000)
GO

Semua nilai kolom MINIMUM_WAGE akan menjadi NULL.

Anda perlu menambahkan nilai DEFAULT jika Anda menambahkan batasan NOT NULL jika tabel tidak kosong.

Sebagai contoh, jika tabel Employee tidak kosong, dan jika Anda menambahkan kolom baru dengan constraint NOT NULL maka akan terjadi error.

ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL
GO

Query sql server di atas akan melemparkan kesalahan di bawah ini saat menambahkan kolom baru ke tabel yang ada.

ALTER TABLE only allows columns to be added that can contain nulls, or have a DEFAULT definition specified, or the column being added is an identity or timestamp column, or alternatively if none of the previous conditions are satisfied the table must be empty to allow addition of this column. Column 'MINIMUM_WAGE' cannot be added to non-empty table 'Employee' because it does not satisfy these conditions.

Jika tabel Employee kosong.

Kueri sql server di atas akan menambahkan kolom baru tanpa masalah.

Menambahkan kolom Nullable dengan nilai default untuk record yang sudah ada

Jika Anda ingin menambahkan kolom yang dapat dinullkan dengan nilai default untuk record yang sudah ada, Anda perlu menggunakan WITH VALUES di dalam pernyataan sql.

ALTER TABLE Employee
ADD MINIMUM_WAGE INT
CONSTRAINT Minimum_Pay DEFAULT 1000 WITH VALUES

Query di atas akan menambahkan kolom nullable ke tabel sql server dengan nilai default untuk record yang ada.

Pada tutorial ini kita telah belajar untuk menambahkan sebuah kolom baik itu kolom nullable maupun non nullable pada tabel sql server dengan nilai default untuk semua record yang ada.