Jawaban:
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
NOT NULL
maka harus disebutkan dalam kueri yang lain ia akan mengaturnya secara NULL
default. ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
alter table Employee alter column salary numeric(22,5)
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)
Berjalan ALTER COLUMN
tanpa menyebutkan atribut NOT NULL
akan menghasilkan kolom yang diubah menjadi nullable, jika sudah tidak. Oleh karena itu, Anda harus terlebih dahulu memeriksa apakah kolom tersebut dapat dibatalkan dan jika tidak, tentukan atribut NOT NULL
. Atau, Anda dapat menggunakan pernyataan berikut yang memeriksa nullability kolom sebelumnya dan menjalankan perintah dengan atribut yang tepat.
IF COLUMNPROPERTY(OBJECT_ID('Employee', 'U'), 'Salary', 'AllowsNull')=0
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
ELSE
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NULL
Pilih tabel -> Desain -> ubah nilai dalam Tipe Data yang ditunjukkan pada Gambar berikut.
Simpan desain tabel.
Pendekatan menarik dapat ditemukan di sini: Cara Memperbesar Kolom Anda Tanpa Downtime oleh spaghettidba
Jika Anda mencoba memperbesar kolom ini dengan perintah “ALTER TABLE”, Anda harus menunggu SQLServer melewati semua baris dan menulis tipe data baru
ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;
Untuk mengatasi ketidaknyamanan ini, ada pil pembesaran kolom ajaib yang dapat diambil oleh meja Anda, dan ini disebut Row Compression. (...) Dengan Kompresi Baris, kolom ukuran tetap Anda hanya dapat menggunakan ruang yang dibutuhkan oleh tipe data terkecil di mana data aktual cocok.
Ketika tabel dikompresi pada ROW
level, maka ALTER TABLE ALTER COLUMN
hanya operasi metadata.