Salesforce 迁移到 SQL 服务器:SF 的主键是字母数字,那么如何自动递增?
Salesforce migration to SQL Server: SF's primary key is alpha numeric so how do I auto increment?
我已将数据从 Salesforce 移至 SQL 服务器以与 MS Access 作为前端一起使用,并意识到他们使用字母数字 ID 作为其 ID 列。
如何保留 table 关系的数据并为新条目自动递增新 ID?还有我应该使用什么数据类型?
评论太长了。
您应该努力更改 table,使主键成为标识列。您可以将旧的主键保留为一个属性,但您不必对其执行任何操作。
确保所有外键关系都使用整型主键。您可以使用旧值查找新的主键值。
这将简化您未来的生活。
编辑:
例如。如果您现有的 table 是 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;
我已将数据从 Salesforce 移至 SQL 服务器以与 MS Access 作为前端一起使用,并意识到他们使用字母数字 ID 作为其 ID 列。
如何保留 table 关系的数据并为新条目自动递增新 ID?还有我应该使用什么数据类型?
评论太长了。
您应该努力更改 table,使主键成为标识列。您可以将旧的主键保留为一个属性,但您不必对其执行任何操作。
确保所有外键关系都使用整型主键。您可以使用旧值查找新的主键值。
这将简化您未来的生活。
编辑:
例如。如果您现有的 table 是 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;