Add a column with a default value to an existing table in SQL Server

后端 未结 30 2176
轮回少年
轮回少年 2020-11-22 12:00

How can I add a column with a default value to an existing table in SQL Server 2000 / SQL Server 2005?

相关标签:
30条回答
  • 2020-11-22 12:21

    Alternatively, you can add a default without having to explicitly name the constraint:

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

    If you have an issue with existing default constraints when creating this constraint then they can be removed by:

    alter table [schema].[tablename] drop constraint [constraintname]
    
    0 讨论(0)
  • 2020-11-22 12:21
    --Adding Value with Default Value
    ALTER TABLE TestTable
    ADD ThirdCol INT NOT NULL DEFAULT(0)
    GO
    
    0 讨论(0)
  • 2020-11-22 12:21

    Try with the below query:

    ALTER TABLE MyTable
    ADD MyNewColumn DataType DEFAULT DefaultValue
    

    This will add a new column into the Table.

    0 讨论(0)
  • 2020-11-22 12:22

    Example:

    ALTER TABLE [Employees] ADD Seniority int not null default 0 GO
    
    0 讨论(0)
  • 2020-11-22 12:22

    Add a new column to a table:

    ALTER TABLE [table]
    ADD Column1 Datatype
    

    For example,

    ALTER TABLE [test]
    ADD ID Int
    

    If the user wants to make it auto incremented then:

    ALTER TABLE [test]
    ADD ID Int IDENTITY(1,1) NOT NULL
    
    0 讨论(0)
  • 2020-11-22 12:24

    To add a column to an existing database table with a default value, we can use:

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

    Here is another way to add a column to an existing database table with a default value.

    A much more thorough SQL script to add a column with a default value is below including checking if the column exists before adding it also checkin the constraint and dropping it if there is one. This script also names the constraint so we can have a nice naming convention (I like DF_) and if not SQL will give us a constraint with a name which has a randomly generated number; so it's nice to be able to name the constraint too.

    -------------------------------------------------------------------------
    -- 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
    

    These are two ways to add a column to an existing database table with a default value.

    0 讨论(0)
提交回复
热议问题