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

标签 sql sql-server azure

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

CREATE TABLE DimAccount
(
    AccountKey INT NOT NULL IDENTITY(1,1)
    ,AccountID CHAR
)

当我插入值时,我会在 AccountKey 中获得随机数,例如

AccountKey
17
21
56

我希望 AccountKey 从 1 开始连续。有人可以建议吗?

最佳答案

不保证身份值没有间隙。它们仅保证大于表中之前的数字。

没有问题; identity 的行为符合其应有的样子。这些差距实际上对于绩效很重要。任何生成无间隙数字的努力往往需要大量额外的锁定和同步——但收效甚微。然后,如果您删除任何行或回滚事务,间隙就会重新出现。

在 SQL Server 中,您可以使用序列来获取所需的结果。我认为 SQL Azure 中没有该选项。

关于sql - 使用标识而不是顺序时的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61868272/

相关文章:

SQL 查询 - 如何不包含某些结果

mysql - Update Case When,有多个条件

visual-studio-2010 - 构建Windows Azure云项目时出错

azure - 如何从交互式 PowerShell session 调用 Azure REST API

php - 提前查询。在mysql中对最相关的字段进行排名

python - sqlite3 Connection 对象的 row_factory 方法的目的是什么?

SQL查询获取最多

sql-server - 如何在 SSIS 中追加来自两个源的两行?

sql-server - 对每行 SQL 数据进行重复数据删除

azure - Azure 存储数据移动库是否支持 Azure 表?