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

标签 sql sql-server tsql

我想向现有表添加 2 个新列。

其中一个应该是NOT NULL,默认值为0 (也填充现有行)。

我尝试过以下语法:

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

但是它抛出异常。应该怎么写呢?

最佳答案

你可以使用这个:

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

关于sql - 如何向表中添加多列并在其中一列上添加默认约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15184939/

相关文章:

sql - 将数字与数字子集的总和进行比较

mysql - 将行更新为另一个表中未设置的行的副本

mysql - 错误 1054 (42S22) : Unknown column '' in 'where clause'

sql-server - 在 SQL Server 2005 中使用 FreeTextTable 时初始查询速度缓慢

sql-server - SQL Server 2012 过滤索引 - Where 子句是否太复杂

sql-server - 如何连接长 nvarchar(max) 行以构建动态 T-SQL

sql - INNER JOIN 能否提供比 EXISTS 更好的性能

mysql - 就地更新 MySQL 列

sql - 如何在不满足条件时显示 NULL

sql - 如何使用 T-SQL 使用分隔符字符分割字符串?