aku ingin ALTER
tipe data dari beberapa kolom dalam sebuah tabel.
Untuk satu kolom, berikut ini berfungsi dengan baik:
ALTER TABLE tblcommodityOHLC
ALTER COLUMN
CC_CommodityContractID NUMERIC(18,0)
Tetapi bagaimana cara mengubah beberapa kolom dalam satu pernyataan? Berikut ini tidak berfungsi:
ALTER TABLE tblcommodityOHLC
ALTER COLUMN
CC_CommodityContractID NUMERIC(18,0),
CM_CommodityID NUMERIC(18,0)
sql-server
tsql
alter-column
D.mahesh
sumber
sumber
Jawaban:
Ini tidak mungkin. Anda harus melakukan ini satu per satu.
Anda bisa membuat Tabel Sementara dengan kolom yang dimodifikasi di, salin data, letakkan tabel asli Anda dan ganti nama Tabel Sementara Anda dengan nama asli Anda.
sumber
You will need to do this one by one.
jadi, apa masalahnya, cukup gunakan beberapaALTER TABLE ALTER COLUMN
perintah?"Each statement means a new scan"
: Tidak harus @erikkallen. Dalam beberapa kasus, kolom ALTER adalah perubahan metadata sederhana. Anda dipersilakan untuk bergabung dengan kuliah saya besok tentang "SQL Internals - Physical Table Structure under the hood, and implementation on real case scenarios
" untuk melihat semuanya secara praktis :-)Melakukan beberapa
ALTER COLUMN
tindakan di dalam satuALTER TABLE
pernyataan tidak dimungkinkan.Lihat
ALTER TABLE
sintaks di siniAnda dapat melakukan banyak
ADD
atau banyakDROP COLUMN
, tetapi hanya satuALTER COLUMN
.sumber
Seperti yang dijawab orang lain, Anda perlu beberapa
ALTER TABLE
pernyataan.Coba ikuti:
sumber
Solusi berikut bukan pernyataan tunggal untuk mengubah beberapa kolom, tapi ya, itu membuat hidup menjadi sederhana:
Buat
CREATE
skrip tabel .Ganti
CREATE TABLE
denganALTER TABLE [TableName] ALTER COLUMN
untuk baris pertamaHapus kolom yang tidak diinginkan dari daftar.
Ubah tipe data kolom yang Anda inginkan.
Lakukan Cari dan Ganti ... sebagai berikut:
NULL
,NULL; ALTER TABLE [TableName] ALTER COLUMN
Jalankan skrip.
Semoga ini akan menghemat banyak waktu :))
sumber
Seperti yang banyak orang lain katakan, Anda perlu menggunakan beberapa
ALTER COLUMN
pernyataan, satu untuk setiap kolom yang ingin Anda modifikasi.Jika Anda ingin mengubah semua atau beberapa kolom di tabel Anda ke tipe data yang sama (seperti memperluas bidang VARCHAR dari 50 hingga 100 karakter), Anda bisa membuat semua pernyataan secara otomatis menggunakan kueri di bawah ini. Teknik ini juga berguna jika Anda ingin mengganti karakter yang sama di beberapa bidang (seperti menghapus \ t dari semua kolom).
Ini menghasilkan
ALTER TABLE
pernyataan untuk setiap kolom untuk Anda.sumber
Jika Anda melakukan perubahan di studio manajemen dan menghasilkan skrip, ia membuat tabel baru dan memasukkan data lama ke dalamnya dengan tipe data yang diubah. Berikut adalah contoh kecil mengubah tipe data dua kolom
sumber
Jika Anda tidak ingin menulis semuanya sendiri dan mengubah semua kolom ke tipe data yang sama, ini dapat mempermudah:
Anda dapat menyalin dan menempelkan output sebagai permintaan Anda
sumber
sumber
Berkat sampel kode Evan, saya dapat memodifikasinya lebih banyak dan membuatnya lebih spesifik untuk tabel yang dimulai dengan, nama kolom spesifik DAN menangani spesifik untuk kendala juga. Saya menjalankan kode itu dan kemudian menyalin kolom [KODE] dan menjalankannya tanpa masalah.
sumber
sumber
Kami dapat mengubah beberapa kolom dalam satu kueri seperti ini:
Cukup berikan pertanyaan sebagai dipisahkan koma.
sumber
Masukkan
ALTER COLUMN
pernyataan di dalam braket, itu harus bekerja.sumber
Jika saya memahami pertanyaan Anda dengan benar, Anda dapat menambahkan beberapa kolom dalam sebuah tabel dengan menggunakan kueri yang disebutkan di bawah ini.
Pertanyaan:
sumber