具有new not null的备用表SQL [duplicate]中现有表中的列

    这个问题在这里已有答案:                           将不可为空的列添加到SQL Server中的现有表中?                                      3个答案                                    
已邀请:
您将要么必须指定DEFAULT,要么添加允许NULL的列,更新所有值,然后将列更改为NOT NULL。
ALTER TABLE <YourTable> 
ADD <NewColumn> <NewColumnType> NOT NULL DEFAULT <DefaultValue>
    
选择: a)使用一些有效的默认值创建非null  b)创建null,填充它,alter to not null     
有两种方法可以将NOT NULL列添加到表中: 通过添加具有NULL约束的列来更改表。在列中填入一些数据。例如:列可以用''更新 通过给出DEFAULT值添加具有NOT NULL约束的列来更改表。 ALTER表TableName ADD NewColumn DataType NOT NULL DEFAULT''     
最简单的方法是:
ALTER TABLE db.TABLENAME ADD COLUMN [datatype] NOT NULL DEFAULT 'value'
例如:将列x(位数据类型)添加到表ABC,默认值为0
ALTER TABLE db.ABC ADD COLUMN x bit NOT NULL DEFAULT 0
PS:我不喜欢使用表设计器。它有时更容易传统/老式。 :)。希望这有助于回答     
IF NOT EXISTS (SELECT 1
FROM syscolumns sc
JOIN sysobjects so
ON sc.id = so.id
WHERE so.Name = 'Table1'
AND sc.Name = 'Col1')
BEGIN
ALTER TABLE Table1
ADD Col1 INT NOT NULL DEFAULT 0;
END
GO
    

要回复问题请先登录注册