Sql server 在MS SQL 2005或2008中自动递增多个标识列
我希望在MS SQL中有两个不同的表,例如users和groups,它们都带有identity列。是否可以在两个标识列上创建自动增量?我希望第三个表包含这两个表的公共信息,并且我希望识别唯一的记录 在甲骨文中是顺序 有可能吗 谢谢 Martin Pilch用于SQL Server 第三个表应通过引用用户和组 要实现第三个表中两列的唯一性,只需使用unique constraint,如下所示:Sql server 在MS SQL 2005或2008中自动递增多个标识列,sql-server,database-design,identity,auto-increment,multiple-tables,Sql Server,Database Design,Identity,Auto Increment,Multiple Tables,我希望在MS SQL中有两个不同的表,例如users和groups,它们都带有identity列。是否可以在两个标识列上创建自动增量?我希望第三个表包含这两个表的公共信息,并且我希望识别唯一的记录 在甲骨文中是顺序 有可能吗 谢谢 Martin Pilch用于SQL Server 第三个表应通过引用用户和组 要实现第三个表中两列的唯一性,只需使用unique constraint,如下所示: CREATE TABLE Third ( id_user INT references Users(
CREATE TABLE Third (
id_user INT references Users(id),
id_group INT references Groups(id),
CONSTRAINT user_group_unique UNIQUE(id_user, id_group)
);
我不确定您到底在寻找什么,但您可以使用以下属性在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
每个表上都可以有这样一个字段,并且可以有一个多对多表链接这两个字段。好吧,SQL Server没有一个概念,可以在多个表中使用命名标识(cfr.Oracles
SEQUENCE
)
您有几个选项来区分来自两个表的数据
- 在两个表中都使用a作为ID列
- 在第三个表中,操作两个表之一的ID,再次生成唯一的ID(例如,用-1乘以)。我假设您的第三个表将是其他两个表的视图李>
- 重新思考您的设计,了解为什么需要这样的构造
如果设计无法更改,我会选择使用GUID。GUID是解决方案,但它太大了—16字节。我会用另一种方法来解决它