Я столкнулся со старой таблицей сегодня со столбцом даты и времени под названием 'Созданный', который позволяет, аннулирует. Теперь, я хотел бы изменить это так, чтобы это был NOT 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
Возможно, вам придется сначала обновить все записи, которые имеют значение 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