Если рассматриваемый столбец является частью ограничения внешнего ключа, то, очевидно, нет - типы данных с обеих сторон ограничения должны точно совпадать, а оператор ALTER TABLE
может влиять только на одну таблицу за раз.
Если это просто еще один столбец в таблице с ограничением внешнего ключа, то да, его можно изменить.
Если столбец является частью первичного ключа или уникальнымограничение, и не ссылается на внешний ключ, он может быть изменен.Мне потребовалось ~ 30 секунд, чтобы написать это:
create table T1 (
ID varchar(10) not null PRIMARY KEY,
Val1 varchar(10) not null UNIQUE
)
go
insert into T1 (ID,Val1) values ('abc','def')
go
alter table T1 alter column Val1 varchar(50) not null
go
alter table T1 alter column ID varchar(50) not null
Работает без ошибок.