Sql 使用标识而不是顺序时的随机数

Sql 使用标识而不是顺序时的随机数,sql,sql-server,azure,Sql,Sql Server,Azure,我正在azure数据仓库(synapse)上创建一个表。我需要向我的维度表添加一个代理键。我已经用idenity创建了如下表: CREATE TABLE DimAccount ( AccountKey INT NOT NULL IDENTITY(1,1) ,AccountID CHAR ) 当我插入值时,我会在AccountKey中得到随机数,例如 AccountKey 17 21 56 我希望AccountKey从1开始按顺序排列。有人能提供建议吗?不能保证标识值没有间隙。

我正在azure数据仓库(synapse)上创建一个表。我需要向我的维度表添加一个代理键。我已经用idenity创建了如下表:

CREATE TABLE DimAccount
(
    AccountKey INT NOT NULL IDENTITY(1,1)
    ,AccountID CHAR
)
当我插入值时,我会在AccountKey中得到随机数,例如

AccountKey
17
21
56

我希望AccountKey从1开始按顺序排列。有人能提供建议吗?

不能保证标识值没有间隙。它们只保证大于表中以前的数字

没有问题,<代码>标识按其应有的方式运行。差距实际上对性能很重要。任何产生无间隙数字的努力都需要大量额外的锁定和同步,但收获甚微。然后,如果删除任何行或回滚事务,间隙就会重新出现


在SQL Server中,可以使用序列来获得所需的结果。我认为SQL Azure中不提供该选项。

使用序列对象不需要触发器-默认约束即可。