如何向表中添加多个列并在其中一个列上添加默认约束?

28
我想在现有的表格中添加两列。
其中一列应该是NOT NULL,默认值为0(在现有行中也填充)。
我尝试了以下语法:
Alter TABLE dbo.MamConfiguration
    add [IsLimitedByNumOfUsers] [bit]  NOT NULL,
    CONSTRAINT IsLimitedByNumOfUsers_Defualt [IsLimitedByNumOfUsers] DEFAULT 0
    [NumOfUsersLimit] [int] NULL
go

但它抛出了异常。我应该怎么写?
4个回答

52
你可以使用这个:
ALTER TABLE dbo.MamConfiguration
ADD [IsLimitedByNumOfUsers] [BIT] NOT NULL DEFAULT 0,   
    [NumOfUsersLimit] [INT] NULL
GO

或者这个:
ALTER TABLE dbo.MamConfiguration
ADD [IsLimitedByNumOfUsers] [BIT] NOT NULL 
        CONSTRAINT IsLimitedByNumOfUsers_Default DEFAULT 0,
    [NumOfUsersLimit] [INT] NULL
go

更多:修改表


5
我建议选择方案二,给你的约束条件起明确的名称——如果以后需要删除它们,这将使得操作更加容易! - marc_s
1
@marc_s:是的,我非常同意你的观点! - Iswanto San
我从未注意到在要添加的列之间可以使用逗号“,”。如果您要向现有表中添加许多新列,这真是一个节省时间的好方法! - Mike

6

试试这个。

ALTER TABLE dbo.MamConfiguration  
ADD [IsLimitedByNumOfUsers] [bit]  NOT NULL DEFAULT 0,     
[NumOfUsersLimit] [int] NULL  

0

每一列都是不同的;

ALTER TABLE
    MamConfiguration
ADD
    Configuration1 BIT NULL, --this column is nullable
    Configuration2 BIT NOT NULL, --this column is not nullable
    Configuration3 BIT NOT NULL DEFAULT(0), --this column is not nullable and set default value is 0(zero)
    Configuration4 BIT NOT NULL CONSTRAINT DF_Configuration4 DEFAULT(0) --this column is not nullable and set default value is 0(zero) with spesific constraint name
GO

0

如何向表中添加多个列并在其中一个列上添加默认约束条件-

ALTER TABLE dbo.MamConfiguration
ADD [IsLimitedByNumOfUsers] [BIT] CONSTRAINT Def_IsLimitedByNumOfUsers DEFAULT(0) NOT NULL,   
    [NumOfUsersLimit] [INT] NULL;
GO

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接