Pertanyaan Tambahkan kolom dengan nilai default ke tabel yang ada di SQL Server


Bagaimana suatu kolom dengan nilai default ditambahkan ke tabel yang ada di SQL Server 2000 / SQL Server 2005?


2291
2017-09-18 12:30


asal


Jawaban:


Sintaksis:

ALTER TABLE {TABLENAME} 
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} 
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES

Contoh:

ALTER TABLE SomeTable
        ADD SomeCol Bit NULL --Or NOT NULL.
 CONSTRAINT D_SomeTable_SomeCol --When Omitted a Default-Constraint Name is autogenerated.
    DEFAULT (0)--Optional Default-Constraint.
WITH VALUES --Add if Column is Nullable and you want the Default Value for Existing Records.

Catatan:

Nama Batasan Opsional:
Jika kamu keluar CONSTRAINT D_SomeTable_SomeCol maka SQL Server akan melakukan autogenerate
Default-Contraint dengan Nama yang lucu seperti: DF__SomeTa__SomeC__4FB7FEF6

Pernyataan Opsi Dengan Nilai Opsional:
Itu WITH VALUES hanya diperlukan ketika Kolom Anda Nullable
dan Anda ingin Nilai Default digunakan untuk Arsip yang Ada.
Jika Kolom Anda NOT NULL, maka secara otomatis akan menggunakan Nilai Default
untuk semua Rekaman yang Ada, apakah Anda menentukan WITH VALUES atau tidak.

Cara Sisipan berfungsi dengan Batasan-Default:
Jika Anda memasukkan Rekam ke dalam SomeTable dan lakukan tidak Menentukan SomeColnilai, maka akan Default ke 0.
Jika Anda memasukkan Rekaman dan Menentukan SomeColnilai sebagai NULL (dan kolom Anda memungkinkan null),
maka Default-Constraint akan tidak digunakan dan NULL akan dimasukkan sebagai Nilai.

Catatan didasarkan pada umpan balik yang bagus dari semua orang di bawah ini.
Terima kasih khusus kepada:
@Yatrix, @WalterStabosz, @YahooSerious, dan @StackMan untuk komentar mereka.


2917
2017-09-18 12:34



ALTER TABLE Protocols
ADD ProtocolTypeID int NOT NULL DEFAULT(1)
GO

Dimasukkannya DEFAULT mengisi kolom di ada baris dengan nilai default, jadi kendala NOT NULL tidak dilanggar.


868
2017-09-18 12:31



Saat menambahkan a kolom nullable, WITH VALUES akan memastikan bahwa nilai DEFAULT spesifik diterapkan ke baris yang ada:

ALTER TABLE table
ADD column BIT     -- Demonstration with NULL-able column added
CONSTRAINT Constraint_name DEFAULT 0 WITH VALUES

196
2018-04-12 17:40



ALTER TABLE <table name> 
ADD <new column name> <data type> NOT NULL
GO
ALTER TABLE <table name> 
ADD CONSTRAINT <constraint name> DEFAULT <default value> FOR <new column name>
GO

115
2017-09-18 12:39



ALTER TABLE MYTABLE ADD MYNEWCOLUMN VARCHAR(200) DEFAULT 'SNUGGLES'

104
2017-08-05 03:28



Hati-hati ketika kolom yang Anda tambahkan memiliki NOT NULL kendala, namun tidak memiliki DEFAULT kendala (nilai). Itu ALTER TABLE pernyataan akan gagal dalam hal itu jika tabel memiliki baris di dalamnya. Solusinya adalah menghapusnya NOT NULL kendala dari kolom baru, atau berikan DEFAULT kendala untuk itu.


84
2017-09-24 16:03



Versi paling dasar dengan dua baris saja

ALTER TABLE MyTable
ADD MyNewColumn INT NOT NULL DEFAULT 0

78
2018-05-25 14:50