我想在MS SQL中有两个不同的表,例如用户和组,两者都带有标识列。可以在两个标识列上创建自动增量吗?我希望第三个表有这两个表的常见信息,我想识别唯一的记录。
在Oracle中是SEQUENCE。
可以这样做吗?
谢谢,
Martin Pilch
答案 0 :(得分:2)
Afaik,SQL Server没有一个概念,你可以在多个表中使用命名身份(cfr.Oracles SEQUENCE
)
您可以通过几种方法来区分来自两个表格的数据
如果无法更改设计,则可以选择使用GUID。
答案 1 :(得分:0)
对于SQL Server,您获得了Identity property。
您的第三个表格应通过foreign key引用用户和群组。
要在第三个表中实现两列的唯一性,只需使用唯一约束,如下所示:
CREATE TABLE Third (
id_user INT references Users(id),
id_group INT references Groups(id),
CONSTRAINT user_group_unique UNIQUE(id_user, id_group)
);
答案 2 :(得分:0)
我不确定您的确切需求,但您可以使用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。
您可以在每个表上都有这样一个字段,并且可以在多个表上链接这两个字段。