Измените столбец Nullable на NOT NULL со значением по умолчанию
Сегодня я столкнулся с старой таблицей с столбцом datetime с названием "Создано", который допускает null. Теперь я хочу изменить это так, чтобы он НЕ был NULL, а также включил ограничение для добавления значения по умолчанию (getdate()).
До сих пор у меня есть следующий script, который отлично работает при условии, что я очистил все нули заблаговременно:
ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL
Можно ли также указать значение по умолчанию в инструкции ALTER?
Ответы
Ответ 1
Думаю, вам нужно будет сделать это как три отдельных заявления. Я смотрю вокруг, и все, что я видел, кажется, предлагает вам сделать это, если вы добавляете столбец, но не, если вы меняете его.
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
Возможно, вам придется сначала обновить все записи с нулевым значением по умолчанию, а затем использовать оператор alter table.
Update dbo.TableName
Set
Created="01/01/2000"
where Created is NULL
Ответ 3
Если его SQL Server вы можете сделать это в свойствах столбца в представлении дизайна
Попробуйте это?:
ALTER TABLE dbo.TableName
ADD CONSTRAINT DF_TableName_ColumnName
DEFAULT '01/01/2000' FOR ColumnName
Ответ 4
вам нужно выполнить два запроса:
Один - добавить значение по умолчанию в требуемый столбец
ALTER TABLE 'Table_Name` ADD DEFAULT' значение 'FOR' Column_Name '
Я хочу добавить значение по умолчанию в Column IsDeleted, как показано ниже:
Пример: ALTER TABLE [dbo]. [Сотрудники] ADD Значение по умолчанию 0 для IsDeleted
Два - изменить значение столбца с нулевым значением до нуля
ALTER TABLE 'table_name' ALTER COLUMN 'column_name' 'data_type' NOT NULL
Я хочу сделать столбец IsDeleted как not null
ALTER TABLE [dbo]. [Сотрудники] Alter Column IsDeleted BIT NOT NULL