Измените столбец Nullable на NOT NULL со Значением по умолчанию

Я столкнулся со старой таблицей сегодня со столбцом даты и времени под названием 'Созданный', который позволяет, аннулирует. Теперь, я хотел бы изменить это так, чтобы это был NOT NULL, и также включайте ограничение для добавления в значении по умолчанию (getdate ()).

До сих пор у меня есть следующий сценарий, который хорошо работает при условии, что я очистил все пустые указатели заранее:

ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL 

Там какой-либо путь состоит в том, чтобы также указать значение по умолчанию также на операторе ALTER?

61
задан Ofer Zelig 24 May 2017 в 05:47
поделиться

3 ответа

Я думаю, вам нужно будет сделать это в виде трех отдельных операторов. Я осмотрелся, и все, что я видел, похоже, подсказывает, что вы можете это сделать, если вы добавляете столбец, но не изменяете его.

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 
87
ответ дан 24 November 2019 в 17:20
поделиться

Возможно, вам придется сначала обновить все записи, которые имеют значение NULL, до значения по умолчанию, а затем использовать оператор alter table.

Update dbo.TableName
Set
Created="01/01/2000"
where Created is NULL
10
ответ дан 24 November 2019 в 17:20
поделиться

Если это SQL Server, вы можете сделать это в свойствах столбца в представлении дизайна

Попробуйте так:

ALTER TABLE dbo.TableName 
  ADD CONSTRAINT DF_TableName_ColumnName
    DEFAULT '01/01/2000' FOR ColumnName
1
ответ дан 24 November 2019 в 17:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: