- Memahami Keterbatasan Data pada Kolom NOT NULL
- Membatalkan Penghapusan Data Kolom yang Ada
- Mengubah Struktur Data Kolom
- Verifikasi Nullability yang Diubah
Mengubah struktur data kolom di SQL Server dari NULL
ke NOT NULL
, dengan demikian melarang nilai non-null di kolom itu, umumnya dilakukan menggunakan ALTER TABLE
yang relatif sederhana sintaks untuk mengubah kolom yang dimaksud dengan tepat.
Dalam tutorial ini kita akan memeriksa tindakan pencegahan keamanan penting yang diperlukan saat mengubah yang sudah ada data dalam kolom, sebelum benar-benar mengeluarkan ALTER
perintah yang berpotensi menyebabkan kerusakan pada tabel itu sendiri.
Memahami Batasan Data di Kolom NOT NULL
Sebelum perubahan dilakukan pada tabel Anda, penting untuk membahas secara singkat data apa yang dapat (dan tidak dapat) ditentukan dalam kolom yang ada yang ingin Anda ubah menjadi NOT NULL
, memastikan bahwa tidak ada baris yang diizinkan memiliki NULL
nilai di kolom itu.
Yang paling penting, semua NULL
yang ada nilai dalam kolom harus diperbarui ke nilai bukan nol sebelum ALTER
perintah dapat berhasil digunakan dan kolom dibuat NOT NULL
. Setiap upaya untuk menyetel kolom ke NOT NULL
sementara sebenarnya NULL
data tetap di kolom akan menghasilkan kesalahan dan tidak akan terjadi perubahan.
Membatalkan Penghapusan Data Kolom yang Ada
Untuk memastikan tidak ada NULL
nilai di kolom kami, kami akan menggunakan UPDATE
dasar perintah, berlaku secara eksplisit untuk baris di mana nilainya saat ini NULL
. Misalnya, kami memiliki tabel dasar client
data dengan name
, email
, dan phone
. Saat ini beberapa catatan memiliki NULL
phone
nilai, yang tidak ingin kami izinkan:
clientsID name email phone
1 Neville Estes [email protected] 1-843-863-2697
2 Flynn Fry [email protected]
3 Wyatt Schmidt [email protected] 1-950-895-1847
4 Oleg Hill [email protected] 1-173-344-1578
5 Randall Bullock [email protected]
6 Lamar White [email protected] 1-421-757-4907
7 Fuller Hill [email protected] 1-178-437-8281
8 Ulysses Boyle [email protected] 1-535-515-1494
9 Paki Palmer [email protected]
10 Kamal Buchanan [email protected] 1-325-847-4838
Oleh karena itu, kita dapat memasukkan nilai default untuk semua phone
nilai yang saat ini NULL
dengan pernyataan berikut:
UPDATE
clients
SET
phone = '0-000-000-0000'
WHERE
phone IS NULL;
Sekarang NULL
. kami semua nilai telah diganti dengan nilai yang kami anggap sebagai default
, 0-000-000-0000
:
clientsID name email phone
1 Neville Estes [email protected] 1-843-863-2697
2 Flynn Fry [email protected] 0-000-000-0000
3 Wyatt Schmidt [email protected] 1-950-895-1847
4 Oleg Hill [email protected] 1-173-344-1578
5 Randall Bullock [email protected] 0-000-000-0000
6 Lamar White [email protected] 1-421-757-4907
7 Fuller Hill [email protected] 1-178-437-8281
8 Ulysses Boyle [email protected] 1-535-515-1494
9 Paki Palmer [email protected] 0-000-000-0000
10 Kamal Buchanan [email protected] 1-325-847-4838
Mengubah Struktur Data Kolom
Sekarang tidak ada NULL
nilai lagi, kami dapat mengeluarkan ALTER
pernyataan untuk memperbarui kolom sehingga semua penambahan di masa mendatang tidak mengizinkan NULL
nilai-nilai. Karena kami mengubah phone
kolom dalam contoh ini, pernyataan akan terlihat seperti ini:
ALTER TABLE
clients
ALTER COLUMN
phone
NVARCHAR(20) NOT NULL;
Verifikasi Nullability yang Diubah
Setelah perubahan pada kolom Anda dibuat, praktik yang baik adalah memverifikasi bahwa kolom tidak lagi mengizinkan NULL
nilai dengan menjalankan INSERT
simple sederhana menguji dan mencoba memasukkan catatan baru dengan NULL
nilai di kolom yang diubah:
INSERT INTO
clients(name, email, phone)
VALUES
('John Doe', '[email protected]', NULL);
Jika semua berjalan sesuai rencana, SQL Server akan mengeluarkan kesalahan yang menyatakan bahwa kolom tidak mengizinkan NULL
nilai:
Cannot insert the value NULL into column 'phone', table 'library.dbo.clients'; column does not allow nulls. INSERT fails. [SQL State=23000, DB Errorcode=515]