MS SQL 2005 或 2008 中多个标识列的自动增量
我想在 MS SQL 中有两个不同的表,例如用户和组,都带有标识列。可以在两个标识列上创建自动增量吗?我想要第三个表,其中包含这两个表的公共信息,并且我想识别唯一记录。
在Oracle中是SEQUENCE。
有可能做到吗?
谢谢,
马丁·皮尔奇
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Afaik,SQL Server 没有可以在多个表中使用命名身份的概念(参见 Oracle
SEQUENCE
)您有几个选项来区分来自两个表的数据
如果设计无法更改,那么我会优先选择使用 GUID。
Afaik, SQL Server does not have a concept where you can use a named identity in multiple tables (cfr. Oracles
SEQUENCE
)You have a few options to differentiate the data coming from both tables
If the design can't be changed, using a GUID would be my choice of preference.
我不确定您到底在寻找什么,但您可以使用
IDENTITY
属性:在上面的示例中(取自链接页面),
id_num
字段将自动递增,以种子开始1 并递增 1。您可以在每个表上都有一个这样的字段,以及链接这两个表的多对多表。
I am not sure exactly what you are looking for, but you can have auto increment fields in SQL Server using the
IDENTITY
property:In the above example (taken from the linked page), the
id_num
field will auto increment, starting with a seed of 1 and incrementing it by 1.You can have such a field on each table and a many-to-many table that links the two.
对于 SQL Server,您拥有身份属性。
您的第三个表应通过外键引用用户和组。
要实现第三个表中两列的唯一性,只需使用唯一约束,如下所示:
For SQL Server you got Identity property.
Your third table should reference users and groups via foreign key.
To achieve uniqueness of both columns in your third table, simply use unique constraint, like this: