2013-03-03 64 views
25

我想向现有表中添加2个新列。如何将多个列添加到表中并在其中的一个上添加默认约束?

其中之一应是NOT NULL与默认值 (填充在现有的行以及)。

我已经试过的语法如下:

Alter TABLE dbo.MamConfiguration 
    add [IsLimitedByNumOfUsers] [bit] NOT NULL, 
    CONSTRAINT IsLimitedByNumOfUsers_Defualt [IsLimitedByNumOfUsers] DEFAULT 0 
    [NumOfUsersLimit] [int] NULL 
go 

但它抛出异常。我应该如何写它?

回答

41

您可以使用此:

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 

更多:ALTER TABLE

+5

我总是会推荐选项#2 - 给你的约束*明确的名字* - 如果你以后需要删除它们,它会变得更容易! – 2013-03-03 11:57:09

+1

@marc_s:是的,我非常同意你的看法! – 2013-03-03 11:58:52

6

试试这个。

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