我想在 MS SQL 中有两个不同的表,例如用户和组,它们都带有标识列。可以在两个标识列上创建自动增量吗?我想要第三个表,其中包含这两个表的公共信息,并且我想识别唯一记录。
在 Oracle 中是 SEQUENCE。
有可能做到吗?
谢谢,
马丁·皮尔奇
我想在 MS SQL 中有两个不同的表,例如用户和组,它们都带有标识列。可以在两个标识列上创建自动增量吗?我想要第三个表,其中包含这两个表的公共信息,并且我想识别唯一记录。
在 Oracle 中是 SEQUENCE。
有可能做到吗?
谢谢,
马丁·皮尔奇
Afaik,SQL Server 没有可以在多个表中使用命名标识的概念(cfr. Oracles SEQUENCE
)
您有几个选项可以区分来自两个表的数据
如果无法更改设计,则使用 GUID 将是我的首选。
对于 SQL Server,您有Identity 属性。
您的第三个表应该通过外键引用用户和组。
要在第三个表中实现两列的唯一性,只需使用唯一约束,如下所示:
CREATE TABLE Third (
id_user INT references Users(id),
id_group INT references Groups(id),
CONSTRAINT user_group_unique UNIQUE(id_user, id_group)
);
我不确定您正在寻找什么,但您可以使用以下IDENTITY
属性在 SQL Server 中拥有自动增量字段:
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
fname varchar (20),
minit char(1),
lname varchar(30)
);
在上面的示例中(取自链接页面),该id_num
字段将自动递增,从种子 1 开始并将其递增 1。
您可以在每个表上都有这样一个字段,并在一个多对多表上连接这两者。