2013-03-03 34 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 
相關問題