Sql server 22003 8115溢出bigint id的错误

Sql server 22003 8115溢出bigint id的错误,sql-server,django,Sql Server,Django,我的代码在一次测试中运行良好。id从1开始,递增1。然而,当我在django中测试整个运行时,我发现了这个错误 例如,插入了id601193234094856941。在整个运行中,我的插入不超过10000个。这个问题发生在我们的开发环境中 我们有一个解决方案,但我们想了解它是如何工作的,并找到一个解决方案 ('22003','[22003][Microsoft][ODBC驱动程序13 for SQL Server][SQL Server]算术溢出错误将表达式转换为数据类型int.(8115)(S

我的代码在一次测试中运行良好。
id
从1开始,递增1。然而,当我在django中测试整个运行时,我发现了这个错误

例如,插入了
id
601193234094856941
。在整个运行中,我的插入不超过10000个。这个问题发生在我们的开发环境中

我们有一个解决方案,但我们想了解它是如何工作的,并找到一个解决方案

('22003','[22003][Microsoft][ODBC驱动程序13 for SQL Server][SQL Server]算术溢出错误将表达式转换为数据类型int.(8115)(SQLExecDirectW)'


所有变量都是
bigint
。上面的id已正确插入到数据库中,但很明显,通过以后的插入,id达到了一个高于
bigint
最大值的值。

根据您提供的信息,这似乎是预期的。参考id 6011932340944856941超过了INT的值类型。下面的代码引发“算术溢出错误,将表达式转换为数据类型int.”错误。您是否有其他信息可以帮助解决您的问题

DECLARE @big       BIGINT = 601193234094856941
        , @regular INT;

SET @regular = @big; 
看一下。你会注意到一个int的最大值是“代码>2147483647</CODE”。这比你的价值要少得多。如果你确实有ID进入了四万亿,那么你需要使用<代码> Bigint < /C>。我也建议你在“代码> -922337203685477580 ”中启动你的种子。(a
BIGINT
所能存储的最低值)。这将为您提供超过18个五分之一的ID。