我今天遇到了一个旧表,其中有一个名为“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
Update dbo.TableName
Set
Created="01/01/2000"
where Created is NULL
更改表“表名称”为“列名称”添加默认“值”
我想向 Column IsDeleted 添加默认值,如下所示:
示例:ALTER TABLE [dbo].[Employees] ADD IsDeleted 默认为 0
二 - 将可为空的列值更改为不为空
ALTER TABLE '表名' ALTER COLUMN '列名' '数据类型' NOT NULL
我想让 IsDeleted 列不为空
ALTER TABLE [dbo].[Employees] 更改列 IsDeleted BIT NOT NULL
试试这个:
ALTER TABLE dbo.TableName
ADD CONSTRAINT DF_TableName_ColumnName
DEFAULT '01/01/2000' FOR ColumnName
ALTER TABLE table_name ALTER COLUMN col_name data_type NOT NULL;