Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Добавление поля not null в существующую таблицу  [new]
notnulladd
Guest
create table t (id int not null)

insert t values (1)
insert t values (2)
insert t values (3)


alter table t add value2 int not null constraint def_value2 default 0
alter table t drop constraint def_value2


Есть ли какие-нибудь особенности\проблемы при таком варианте добавления поля not null?
15 сен 15, 15:26    [18151686]     Ответить | Цитировать Сообщить модератору
 Re: Добавление поля not null в существующую таблицу  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
notnulladd
Есть ли какие-нибудь особенности\проблемы при таком варианте добавления поля not null?

если версия <2014, а объёмы таблицы существенны, то ждите сюрпризов в виде длительной блокировки Sch-M
15 сен 15, 15:34    [18151728]     Ответить | Цитировать Сообщить модератору
 Re: Добавление поля not null в существующую таблицу  [new]
notnulladd
Guest
Knyazev Alexey,

а в плане хранения и индексирования по этому полю - будут сюрпризы?

Версия 2012, данных в таблице миллионы (не так чтобы много, но времени на изменение мало).
15 сен 15, 15:35    [18151741]     Ответить | Цитировать Сообщить модератору
 Re: Добавление поля not null в существующую таблицу  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
notnulladd
а в плане хранения и индексирования по этому полю - будут сюрпризы?

в плане хранения и индексирования вообще желательно все поля делать NOT NULL, если это возможно

notnulladd
Версия 2012, данных в таблице миллионы (не так чтобы много, но времени на изменение мало)

тогда готовьтесь к тому, что таблица и в режиме "грязного" чтения может быть недоступна длительное время
15 сен 15, 15:39    [18151783]     Ответить | Цитировать Сообщить модератору
 Re: Добавление поля not null в существующую таблицу  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Knyazev Alexey
notnulladd
Версия 2012, данных в таблице миллионы (не так чтобы много, но времени на изменение мало)

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


Обманул же я вас... http://www.t-sql.ru/post/online_default.aspx
16 сен 15, 08:41    [18154348]     Ответить | Цитировать Сообщить модератору
 Re: Добавление поля not null в существующую таблицу  [new]
пьяный тюлень
Member

Откуда:
Сообщений: 100
Тогда, по идее, зависнет на drop constraint.
18 сен 15, 12:41    [18165039]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить