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?
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?
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).
ALTER TABLE dbo.YourTable
ALTER COLUMN YourColumnName BIT
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 ..
NULL
tetap NULL
, 0
menjadi False
, nilai bukan nol (1, -1, 1999, -987 ...) menjadi True
.
ALTER TABLE tablename
ALTER COLUMN columnname columndatatype(size)
Catatan: jika ada ukuran kolom, cukup tulis ukurannya juga.
Jika itu perubahan yang valid.
Anda dapat mengubah properti.
Alat -> Opsi -> Desainer -> Desainer Tabel dan Database -> Hapus centang -> Cegah perubahan simpanan yang diperlukan pembuatan ulang tabel.
Sekarang Anda dapat dengan mudah mengubah nama kolom tanpa membuat ulang tabel atau kehilangan catatan Anda.
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.
jika Anda menggunakan T-SQL (MSSQL); Anda harus mencoba skrip ini:
ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5)
jika Anda menggunakan MySQL; Anda harus mencoba skrip ini:
ALTER TABLE [Employee] MODIFY COLUMN [Salary] NUMERIC(22,5)
jika Anda menggunakan Oracle; Anda harus mencoba skrip ini:
ALTER TABLE [Employee] MODIFY [Salary] NUMERIC(22,5)
Ubah tipe data kolom dengan tipe centang kolom:
IF EXISTS(
SELECT 1
FROM sys.columns
WHERE NAME = 'YourColumnName'
AND [object_id] = OBJECT_ID('dbo.YourTable')
AND TYPE_NAME(system_type_id) = 'int'
)
ALTER TABLE dbo.YourTable ALTER COLUMN YourColumnName BIT
bagi saya, di sql server 2016, saya melakukannya seperti ini
* Untuk mengganti nama kolom, Kolom1 ke kolom2
EXEC sp_rename 'dbo.T_Table1.Column1', 'Column2', 'COLUMN'
* Untuk memodifikasi kolom Ketikkan dari string ke int :( Pastikan data dalam format yang benar )
ALTER TABLE dbo.T_Table1 ALTER COLUMN Column2 int;
Ganti datatype tanpa kehilangan data
alter table tablename modify columnn newdatatype(size);