使用默认值将Nullable列更改为NOT NULL

今天我遇到了一个旧表,名为'Created'的日期时间列允许为空。 现在,我想改变它,使它不是NULL,并且还包括一个约束来添加一个默认值(getdate())。

到目前为止,我已经有了下面的脚本,它可以正常工作,前提是我已经清理了所有的空值:

ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL 

有什么方法可以在ALTER语句中指定默认值吗?


我认为你需要以三个单独的陈述来做到这一点。 我一直在四处看看,我看到的所有东西都似乎暗示你可以做到这一点,如果你正在添加一列,但不是如果你正在改变一列。

ALTER TABLE dbo.MyTable
ADD CONSTRAINT my_Con DEFAULT GETDATE() for created

UPDATE MyTable SET Created = GetDate() where Created IS NULL

ALTER TABLE dbo.MyTable 
ALTER COLUMN Created DATETIME NOT NULL 

您可能必须首先将所有空值记录更新为默认值,然后使用alter table语句。

Update dbo.TableName
Set
Created="01/01/2000"
where Created is NULL

如果它的SQL Server可以在设计视图中的列属性上执行它

尝试这个?:

ALTER TABLE dbo.TableName 
  ADD CONSTRAINT DF_TableName_ColumnName
    DEFAULT '01/01/2000' FOR ColumnName
链接地址: http://www.djcxy.com/p/76315.html

上一篇: Change a Nullable column to NOT NULL with Default Value

下一篇: Alter Table Add Column Syntax