Microsoft SQL Server 2012的新Identity Jump功能如何处理数据类型的范围?

Ais*_*iva 6 sql sql-server auto-increment identity-column sql-server-2012

我认为这是一个错误,但在阅读了这篇文章后,我发现这是一个新功能http://www.codeproject.com/Tips/668042/SQL-Server-2012-Auto-Identity-Column-Value-Jump-Is SQL Server 2012.

此功能会自动将您的上一个标识列值增加1000(int)以获取新行(10000为bigints).

在此输入图像描述

我仍在尝试文章中给出的解决方案,但如果在客户端发生这种跳转,我没有任何问题.因为我向客户端显示了哈希版本的ID.这是他自己的要求而不是我的要求.

但我想知道如果这些标识列的值超过数据类型的范围(int或bigint)会怎么样?它如何处理色谱柱的范围和大小?

Phi*_*ipH 4

现有的 Identity 列将失败,并显示“服务器:消息 8115,级别 16,状态 1,第 2 行算术溢出错误,将 IDENTITY 转换为数据类型 int。发生算术溢出。” 请参阅http://www.sql-server-performance.com/2006/identity-integer-scope/进行讨论。

没有理由怀疑 Identity Jump 会有不同的行为。我不希望它去寻找较早序列中未使用的身份。