Mengubah ukuran kolom di SQL Server


Jawaban:


507
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL

6
Hati-hati, jika Anda mengubah kolom dalam data yang sangat besar. Anda dapat menyebabkan kerusakan (tetap pada lingkungan saya).
DavidTheDev

55
Penting juga bahwa jika kolomnya adalah dengan atribut NOT NULLmaka harus disebutkan dalam kueri yang lain ia akan mengaturnya secara NULLdefault. ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
Suvendu Shekhar Giri

8
Jika Anda memiliki indeks pada kolom itu Anda harus menjatuhkannya, kemudian jalankan kode tabel alter dan kemudian buat indeks lagi
Sr.PEDRO



19

Berjalan ALTER COLUMNtanpa menyebutkan atribut NOT NULLakan 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

6

Pilih tabel -> Desain -> ubah nilai dalam Tipe Data yang ditunjukkan pada Gambar berikut.

masukkan deskripsi gambar di sini

Simpan desain tabel.


periksa dengan benar mungkin Anda melewatkan beberapa langkah.
arnav

7
Alat -> Opsi ... /> Desainer -> Desainer Tabel dan Database - hapus centang "Cegah perubahan simpanan yang membutuhkan pembuatan ulang tabel"
7anner

Untuk sebagian besar hal, saya lebih suka scripting. Tapi untuk perubahan kolom, saya suka UI. Tidak harus ingat untuk memeriksa TIDAK NULL atau perhitungan atau properti kolom tambahan. Cukup klik Simpan (setelah Anda membuat pengaturan berubah dalam SSMS sebagai @ 7 catatan lebih lanjut).
Jacob H

1

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 ROWlevel, maka ALTER TABLE ALTER COLUMNhanya operasi metadata.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.