Tambahkan sebuah kolom dengan nilai default untuk tabel yang ada di SQL Server

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

Mengomentari pertanyaan (1)
Larutan

Sintaks:

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:

Opsional Kendala Nama:
Jika anda meninggalkan KENDALA D_SomeTable_SomeCol maka SQL Server akan autogenerate
    Default-Contraint dengan Nama yang lucu seperti: DF__SomeTa__SomeC__4FB7FEF6

Opsional Dengan-nilai-Nilai Pernyataan:
The DENGAN NILAI hanya diperlukan ketika anda Kolom adalah Nullable
    dan anda ingin Nilai Default yang digunakan untuk catatan-Catatan yang Ada.
Jika anda Kolom NOT NULL, maka secara otomatis akan menggunakan Nilai Default
    untuk semua Catatan yang Ada, apakah anda tentukan DENGAN NILAI atau tidak.

Cara Menyisipkan bekerja dengan Default-Kendala:
Jika anda memasukkan data ke SomeTable dan melakukan tidak Menentukan SomeCol's value, maka akan Default 0.
Jika anda menyisipkan Catatan dan Menentukan SomeCol's nilai sebagai NULL (dan kolom memungkinkan nilai null),
    maka Default-Kendala akan *tidak ***** dapat digunakan dan NULL akan dimasukkan sebagai Nilai.

Catatan didasarkan pada setiap orang's besar umpan balik di bawah ini.
Terima kasih khusus untuk:
    @Yatrix, @WalterStabosz, @YahooSerious, dan @StackMan untuk komentar-Komentar mereka.

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

Masuknya DEFAULT mengisi kolom di ada baris dengan nilai default, sehingga TIDAK NULL constraint tidak dilanggar.

Komentar (8)

Ketika menambahkan nullable kolom, DENGAN NILAI akan memastikan bahwa nilai DEFAULT tertentu diterapkan untuk baris yang ada:

ALTER TABLE table
ADD column BIT     -- Demonstration with NULL-able column added
CONSTRAINT Constraint_name DEFAULT 0 WITH VALUES
Komentar (2)
ALTER TABLE <table name> 
ADD   NOT NULL
GO
ALTER TABLE <table name> 
ADD CONSTRAINT  DEFAULT  FOR 
GO
Komentar (1)
ALTER TABLE MYTABLE ADD MYNEWCOLUMN VARCHAR(200) DEFAULT 'SNUGGLES'
Komentar (2)

Berhati-hatilah ketika kolom yang anda tambahkan memiliki NOT NULL kendala, namun tidak memiliki DEFAULT kendala (nilai). The ALTER TABLE pernyataan akan gagal dalam kasus jika tabel memiliki setiap baris di dalamnya. Solusinya adalah untuk menghapus NOT NULL kendala dari kolom baru, atau memberikan DEFAULT kendala untuk itu.

Komentar (1)

Versi yang paling dasar dengan dua baris saja

ALTER TABLE MyTable
ADD MyNewColumn INT NOT NULL DEFAULT 0
Komentar (0)

Gunakan:

-- Add a column with a default DateTime  
-- to capture when each record is added.

ALTER TABLE myTableName  
ADD RecordAddedDate smalldatetime NULL DEFAULT(GetDate())  
GO 
Komentar (0)

Jika anda ingin menambahkan beberapa kolom anda dapat melakukannya dengan cara ini misalnya:

ALTER TABLE YourTable
    ADD Column1 INT NOT NULL DEFAULT 0,
        Column2 INT NOT NULL DEFAULT 1,
        Column3 VARCHAR(50) DEFAULT 'Hello'
GO
Komentar (0)

Gunakan:

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

Referensi: ALTER TABLE (Transact-SQL) (MSDN)

Komentar (0)

Anda dapat melakukan hal-hal dengan T-SQL dengan cara sebagai berikut.

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

Serta anda dapat menggunakan SQL Server Management Studio juga dengan mengklik kanan meja di Desain menu, pengaturan nilai default untuk tabel.

Dan selain itu, jika anda ingin menambahkan kolom yang sama (jika belum ada) untuk semua tabel dalam database, kemudian gunakan:

 USE AdventureWorks;
 EXEC sp_msforeachtable
'PRINT ''ALTER TABLE ? ADD Date_Created DATETIME DEFAULT GETDATE();''' ;
Komentar (0)

Di SQL Server 2008 R2, aku pergi ke desain mode - dalam uji database dan menambahkan dua kolom menggunakan desainer dan membuat pengaturan dengan GUI, dan kemudian terkenal Klik Kanan memberikan pilihan "Menghasilkan Perubahan Script"!

Bang sampai muncul sebuah jendela kecil dengan, anda dapat menebaknya, diformat dengan benar dijamin untuk bekerja mengubah naskah. Tekan tombol mudah.

Komentar (0)

Untuk menambahkan sebuah kolom yang ada di tabel database dengan nilai default, kita bisa menggunakan:

ALTER TABLE [dbo.table_name]
    ADD [Column_Name] BIT NOT NULL
Default ( 0 )

Berikut adalah cara lain untuk menambahkan kolom yang ada di tabel database dengan nilai default.

Yang jauh lebih menyeluruh script SQL untuk menambah kolom dengan nilai default adalah di bawah ini termasuk memeriksa jika kolom yang ada sebelum menambahkan hal ini juga checkin kendala dan menjatuhkan jika ada satu. Script ini juga nama-nama yang menjadi kendala sehingga kita bisa have a nice konvensi penamaan (saya suka DF_) dan jika tidak SQL akan memberikan kita sebuah kendala dengan nama yang memiliki nomor secara acak; jadi's baik untuk dapat nama kendala juga.

-------------------------------------------------------------------------
-- Drop COLUMN
-- Name of Column: Column_EmployeeName
-- Name of Table: table_Emplyee
--------------------------------------------------------------------------
IF EXISTS (
            SELECT 1
            FROM INFORMATION_SCHEMA.COLUMNS
            WHERE TABLE_NAME = 'table_Emplyee'
              AND COLUMN_NAME = 'Column_EmployeeName'
           )
    BEGIN

        IF EXISTS ( SELECT 1
                    FROM sys.default_constraints
                    WHERE object_id = OBJECT_ID('[dbo].[DF_table_Emplyee_Column_EmployeeName]')
                      AND parent_object_id = OBJECT_ID('[dbo].[table_Emplyee]')
                  )
            BEGIN
                ------  DROP Contraint

                ALTER TABLE [dbo].[table_Emplyee] DROP CONSTRAINT [DF_table_Emplyee_Column_EmployeeName]
            PRINT '[DF_table_Emplyee_Column_EmployeeName] was dropped'
            END
     --    -----   DROP Column   -----------------------------------------------------------------
        ALTER TABLE [dbo].table_Emplyee
            DROP COLUMN Column_EmployeeName
        PRINT 'Column Column_EmployeeName in images table was dropped'
    END

--------------------------------------------------------------------------
-- ADD  COLUMN Column_EmployeeName IN table_Emplyee table
--------------------------------------------------------------------------
IF NOT EXISTS (
                SELECT 1
                FROM INFORMATION_SCHEMA.COLUMNS
                WHERE TABLE_NAME = 'table_Emplyee'
                  AND COLUMN_NAME = 'Column_EmployeeName'
               )
    BEGIN
    ----- ADD Column & Contraint
        ALTER TABLE dbo.table_Emplyee
            ADD Column_EmployeeName BIT   NOT NULL
            CONSTRAINT [DF_table_Emplyee_Column_EmployeeName]  DEFAULT (0)
        PRINT 'Column [DF_table_Emplyee_Column_EmployeeName] in table_Emplyee table was Added'
        PRINT 'Contraint [DF_table_Emplyee_Column_EmployeeName] was Added'
     END

GO

Ini adalah dua cara untuk menambahkan kolom yang ada di tabel database dengan nilai default.

Komentar (0)

Atau, anda dapat menambahkan default tanpa harus secara eksplisit nama constraint:

ALTER TABLE [schema].[tablename] ADD  DEFAULT ((0)) FOR [columnname]

Jika anda memiliki masalah dengan default yang ada kendala saat membuat kendala ini maka mereka dapat dihapus oleh:

alter table [schema].[tablename] drop constraint [constraintname]
Komentar (1)

Hal ini dapat dilakukan di GUI SSMS juga. Saya menunjukkan default tanggal di bawah ini tapi nilai default dapat menjadi apa pun, tentu saja.

  1. Menempatkan meja anda dalam design view (klik Kanan pada tabel di objek explorer->Desain)
  2. Menambahkan kolom untuk tabel (atau klik pada kolom yang ingin anda perbarui jika sudah ada)
  3. Dalam Kolom Sifat di bawah ini, masukkan (getdate()) atau abc atau 0 atau nilai apapun yang anda inginkan dalam Nilai Default atau Mengikat lapangan seperti yang digambarkan di bawah ini:

Komentar (0)
ALTER TABLE ADD ColumnName {Column_Type} Constraint

Artikel MSDN ALTER TABLE (Transact-SQL) semua sintaks alter table.

Komentar (0)

Contoh:

ALTER TABLE [Employees] ADD Seniority int not null default 0 GO
Komentar (0)

Contoh:

ALTER TABLE tes 
ADD ssd  NUMBER   DEFAULT '0';
Komentar (0)

Pertama-tama buat sebuah tabel dengan nama mahasiswa:

CREATE TABLE STUDENT (STUDENT_ID INT NOT NULL)

Tambahkan satu kolom untuk itu:

ALTER TABLE STUDENT 
ADD STUDENT_NAME INT NOT NULL DEFAULT(0)

SELECT * 
FROM STUDENT

Tabel dibuat dan kolom ditambahkan ke tabel yang ada dengan nilai default.

Komentar (0)

SQL Server + Alter Table + Tambahkan Kolom + Nilai Default uniqueidentifier

ALTER TABLE Product 
ADD ReferenceID uniqueidentifier not null 
default (cast(cast(0 as binary) as uniqueidentifier))
Komentar (0)