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