Это слишком долго для комментария.
Вы должны приложить усилия, чтобы изменить таблицы, чтобы первичные ключи были столбцами идентификаторов.Вы можете сохранить старый первичный ключ в качестве атрибута, но вам не нужно ничего с ним делать.
Убедитесь, что во всех отношениях внешнего ключа используется целочисленный первичный ключ.Вы можете найти новое значение первичного ключа, используя старое значение.
Это упростит вашу жизнь в будущем.
РЕДАКТИРОВАТЬ:
Например.Если ваша существующая таблица - A
с двумя столбцами, X
и Y
, а X
- текущий первичный ключ.Тогда:
create table new_a (
a_id int identity primary key,
x varchar(255) unique,
y int
);
Вставьте в него:
insert into new_a (x, y)
select x, y
from a;
Тогда у вас есть b
, который выглядит как:
create table new_b (
b_id int identity(1, 1) primary key,
b varchar(255) unique,
a_id foreign key references a(a_id)
);
И вставка:
insert into new_b (b, a_id)
select b.b, a.a_id
from b left join
new_a
on b.x = new_a.x;