Cha*_*nya 6 sql-server database-design identity-column
"每个表只能有一个IDENTITY列"
为什么会这样?以车辆的情景为例,存在唯一的登记号码以及唯一的登记号码.要在sql server中描述这种情况,我们需要在列上进行自定义实现.相反,在Oracle中,您可以在表上拥有任意数量的序列.为什么IDENTITY列有限制,有什么具体原因吗?
拥有车辆架构的场景是一个虚构的问题,我在质疑为什么对标识列有限制.
SQL Server中的标识列具有种子和自动增量.如果我们知道第一个id列的值,我们总是可以计算出第二个假设id值应该是多少.
例如,如果这是合法的语法
create table #foo
(
bar int identity(1,10),
baz int identity(1000,1)
)
Run Code Online (Sandbox Code Playgroud)
我们不需要存储baz,因为它可以从bar计算如下.
baz = 1000 + (bar-1)/10
Run Code Online (Sandbox Code Playgroud)
因为它的价值是相同的.如果您将身份(1,1)作为主要身份,并且身份(100,2),您将获得以下结果:
1 100
2 102
3 104
4 106
5 108
6 110
7 112
8 114
9 116
10 118
Run Code Online (Sandbox Code Playgroud)
你可以通过这样做获得第二列:
((ID-1)*2)100
这是一个线性方程,那么除了节目之外还有什么意义呢?