转换成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
