Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在MS SQL 2005或2008中自动递增多个标识列_Sql Server_Database Design_Identity_Auto Increment_Multiple Tables - Fatal编程技术网

Sql server 在MS SQL 2005或2008中自动递增多个标识列

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(

我希望在MS SQL中有两个不同的表,例如users和groups,它们都带有identity列。是否可以在两个标识列上创建自动增量?我希望第三个表包含这两个表的公共信息,并且我希望识别唯一的记录

在甲骨文中是顺序

有可能吗

谢谢

Martin Pilch

用于SQL Server

第三个表应通过引用用户和组

要实现第三个表中两列的唯一性,只需使用unique constraint,如下所示:

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字节。我会用另一种方法来解决它