代码之家  ›  专栏  ›  技术社区  ›  Jim B

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

  •  58
  • Jim B  · 技术社区  · 16 年前

    到目前为止,我得到了以下脚本,只要我事先清除了所有空值,它就可以正常工作:

    ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL 
    

    有没有办法在ALTER语句中也指定默认值?

    4 回复  |  直到 9 年前
        1
  •  98
  •   Abe Miessler    11 年前

    我想你需要把这作为三个独立的陈述来做。我到处看看,我看到的一切似乎都表明,如果你愿意,你可以这样做 列,但如果要更改列,则不能。

    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 
    
        2
  •  12
  •   Jeremy Stein    13 年前

    您可能需要首先将所有空记录更新为默认值,然后使用ALTERTABLE语句。

    Update dbo.TableName
    Set
    Created="01/01/2000"
    where Created is NULL
    
        3
  •  5
  •   Jinna Balu    10 年前

    您需要执行两个查询:

    一-将默认值添加到所需的列

    我想为IsDeleted列添加默认值,如下所示:

    示例:ALTER TABLE[dbo].[Employees]为IsDeleted添加默认值0

    Two-将列值nullable更改为not null

    我想使列IsDeleted为notnull

        4
  •  2
  •   marc_s MisterSmith    14 年前

    如果是SQL Server,则可以在“设计”视图中的列属性上执行此操作

    试试这个

    ALTER TABLE dbo.TableName 
      ADD CONSTRAINT DF_TableName_ColumnName
        DEFAULT '01/01/2000' FOR ColumnName
    
        5
  •  0
  •   belal ahmad    5 年前

    试试这个

    ALTER TABLE TABLE name ALTER col col name data type不为空;