Saya memiliki tabel yang memiliki beberapa kolom integer yang dapat dibatalkan. Ini tidak diinginkan karena beberapa alasan, jadi saya mencari untuk memperbarui semua nol ke 0 dan kemudian mengatur kolom ini menjadi NOT NULL
. Selain mengubah nulls menjadi 0
, data harus dilestarikan.
Saya mencari sintaks SQL spesifik untuk mengubah kolom (sebut saja ColumnA
) menjadi " not null
". Asumsikan data telah diperbarui agar tidak mengandung nol.
Menggunakan SQL server 2000 .
sql-server
tsql
null
alter-table
alter-column
Karmic Coder
sumber
sumber
NOT NULL
dapat menyebabkan banyak penebangan.Jawaban:
Pertama, buat semua
NULL
nilai saat ini hilang:Kemudian, perbarui definisi tabel untuk melarang "NULLs":
sumber
Saya memiliki masalah yang sama, tetapi bidang yang digunakan untuk default ke nol, dan sekarang saya ingin default ke 0. Yang diperlukan menambahkan satu baris lagi setelah solusi mdb:
sumber
Anda harus melakukannya dalam dua langkah:
sumber
Untuk Oracle 11g, saya dapat mengubah atribut kolom sebagai berikut:
Kalau tidak, jawaban Abatichev tampak bagus. Anda tidak dapat mengulangi perubahan - itu mengeluh (setidaknya di SQL Developer) bahwa kolom tersebut sudah tidak nol.
sumber
datatype
. Cukupcolumname NOT NULL
sudah. Lihat dokumentasi .ini bekerja untuk saya:
sumber
Selama kolom bukan pengidentifikasi unik
Kemudian
Ubah tabel dan atur bidang ke non null dan tentukan nilai default 0
sumber
ini tampaknya lebih sederhana, tetapi hanya berfungsi pada Oracle:
selain itu, dengan ini, Anda juga dapat menambahkan kolom, bukan hanya mengubahnya. Ini memperbarui ke nilai default (0) dalam contoh ini, jika nilainya nol.
sumber
Dalam hal
FOREIGN KEY CONSTRAINT
... akan ada masalah jika '0' tidak ada di kolom tabel kunci utama. Solusi untuk itu adalah ...LANGKAH 1:
Nonaktifkan semua kendala menggunakan kode ini:
LANGKAH 2:
LANGKAH3:
Aktifkan semua kendala menggunakan kode ini:
sumber
Dalam kasus saya, saya mengalami kesulitan dengan jawaban yang diposting. Saya akhirnya menggunakan yang berikut ini:
Ubah
VARCHAR(200)
ke tipe data Anda, dan secara opsional ubah nilai default.Jika Anda tidak memiliki nilai default, Anda akan mengalami masalah dalam membuat perubahan ini, karena defaultnya adalah nol yang menciptakan konflik.
sumber
Mari kita ambil contoh:
Dan saya ingin mengubah kolom
EMPLOYEE_NAME
menjadiNOT NULL
. Kueri ini dapat digunakan untuk tugas:sumber
Untuk javaDB inbuilt termasuk dalam JDK (distribusi yang didukung Oracle dari Apache Derby) di bawah ini bekerja untuk saya
sumber
Membuat kolom bukan nol dan menambahkan default juga bisa dilakukan di GUI SSMS.
UPDATE myTable SET myColumn = 0
sumber
Anda dapat mengubah definisi kolom DB yang ada menggunakan sql berikut.
sumber