Создать необнуляемый столбец, но заполнить существующие значения NULL некоторым заданным значением - PullRequest
2 голосов
/ 13 апреля 2011

Я хочу добавить новый столбец «CreatedBy» в таблицу PerformanceData. Я хочу, чтобы этот новый столбец был ненулевым, и я хочу, чтобы существующие значения NULL были заполнены как «NA». Вот как я делаю это прямо сейчас. У нас есть лучший способ?

ALTER TABLE PerformanceData ADD CreatedBy VARCHAR(50) NOT NULL 
CONSTRAINT DF1 DEFAULT('NA')   

ALTER TABLE PerformanceData DROP CONSTRAINT DF1

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

Ответы [ 2 ]

4 голосов
/ 13 апреля 2011

Это выглядит хорошо для меня. Если вы хотите другой путь, вы можете сделать это в три этапа:

ALTER TABLE PerformanceData ADD CreatedBy VARCHAR(50) NULL 

UPDATE PerformanceData SET CreatedBy = 'NA'

ALTER TABLE PerformanceData ALTER COLUMN CreatedBy VARCHAR(50) NOT NULL
1 голос
/ 13 апреля 2011

Я бы сделал это в два этапа с ограничением по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...