Мне нужно изменить типы данных с int
на bigint
на всех первичных и внешних ключах, которые используются в уже существующей базе данных / таблицах.
Чтобы обойти следующую ошибку ...
Сообщение 5074, Уровень 16, Состояние 8, Строка 1
Объект 'Имя ограничения первичного ключа' зависит от столбца«Имя столбца первичного ключа».
Ошибка имени столбца ALTER TABLE ALTER COLUMN, так как один или несколько объектов обращаются к этому столбцу.
Сначала необходимо удалить ограничение, а затем создать его заново.,Вот как я это делаю, используя SSMS:
alter table Meta.Playground
drop constraint Pk_Playground
go
alter table Meta.Playground
alter column id bigint not null
go
alter table Meta.Playground
add constraint Pk_Playground primary key (id)
go
Но что будет лучшим способом сделать это, используя методы Up()
и Down()
Entity-Framework?
Я не знаюНе знаю, как я могу получить имена ключей и ограничений из этих методов.
Используя SQL, я бы получил их следующим образом:
select COLUMN_NAME, CONSTRAINT_NAME
into #result
from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where TABLE_NAME = @table and TABLE_SCHEMA = @schema