转换成int数据时出现数据溢出

作者:动易软件 来源:本站原创 点击数: 发布时间:2023年06月05日

问题:在全文检索系统日志中,全文检索-关键词自动入库处理队列出现异常:System.Data.SqlClient.SqlException (0x80131904): 将 expression 转换为数据类型 int 时出现算术溢出错误。语句已终止。

排查:

SELECT top 100 *

 ROM [dbo].[PE_FulltextSearch_WordInfo]
 order by [SearchCount] desc

 

SELECT top 100
      [SearchKeywordRecordId]
      ,[SearchKeyword]
      ,[SearchCount]
      ,[SearchLastTime]
  FROM [dbo].[PE_FulltextSearch_SearchKeywordRecord]
order by [SearchCount] desc

 

serachCount 字段是int类型,如果超过2147483647,则会溢出,

所以在数据库中不影响关键词从大到小排序的情况下,修改该关键词serachCount 的值,先务必备份好数据库,然后在数据库中执行以下语句:

update   [dbo].[PE_FulltextSearch_WordInfo]   set SearchCount=xxx  xxx值尽量大于排序后一位的值,远小于 2147483647