Saya memiliki database SQL Server dan saya baru menyadari bahwa saya dapat mengubah jenis salah satu kolom dari int
menjadi bool
.
Bagaimana saya bisa melakukan itu tanpa kehilangan data yang sudah dimasukkan ke dalam tabel itu?
sql-server
sql-server-2008
alter
Ivan Stoyanov
sumber
sumber
Jawaban:
Anda dapat dengan mudah melakukan ini menggunakan perintah berikut. Nilai 0 akan diubah menjadi 0 (BIT = false), yang lain akan berubah menjadi 1 (BIT = true).
Pilihan lainnya adalah membuat kolom tipe baru
BIT
, mengisinya dari kolom lama, dan setelah selesai, letakkan kolom lama dan ganti nama yang baru dengan nama lama. Dengan begitu, jika terjadi kesalahan selama konversi, Anda selalu dapat kembali karena Anda masih memiliki semua data ..sumber
NULL
tetapNULL
,0
menjadiFalse
, nilai bukan nol (1, -1, 1999, -987 ...) menjadiTrue
.Catatan: jika ada ukuran kolom, cukup tulis ukurannya juga.
sumber
Jika itu perubahan yang valid.
Anda dapat mengubah properti.
Sekarang Anda dapat dengan mudah mengubah nama kolom tanpa membuat ulang tabel atau kehilangan catatan Anda.
sumber
Menurut Anda mengapa Anda akan kehilangan data? Cukup masuk ke Studio Manajemen dan ubah tipe datanya. Jika nilai yang ada dapat dikonversi menjadi bool (bit), itu akan melakukannya. Dengan kata lain, jika "1" memetakan ke true dan "0" memetakan ke false di bidang asli Anda, Anda akan baik-baik saja.
sumber
jika Anda menggunakan T-SQL (MSSQL); Anda harus mencoba skrip ini:
jika Anda menggunakan MySQL; Anda harus mencoba skrip ini:
jika Anda menggunakan Oracle; Anda harus mencoba skrip ini:
sumber
Pergi ke Alat-Opsi-desainer-Tabel dan Database desainer dan Hapus centang opsi Cegah penghematan
sumber
Ubah tipe data kolom dengan tipe centang kolom:
sumber
bagi saya, di sql server 2016, saya melakukannya seperti ini
* Untuk mengganti nama kolom, Kolom1 ke kolom2
* Untuk memodifikasi kolom Ketikkan dari string ke int :( Pastikan data dalam format yang benar )
sumber
Dalam edisi ringkas akan mengambil ukuran secara otomatis untuk tipe data datetime yaitu (8) sehingga tidak perlu mengatur ukuran bidang dan menghasilkan kesalahan untuk operasi ini ...
sumber
Saya bisa memodifikasi datatype bidang tabel, dengan permintaan berikut: dan juga di Oracle DB,
sumber
Ganti datatype tanpa kehilangan data
sumber