2013-05-31 3 views
0

За последние пару недель клиенты моего клиента получали ошибку ниже при запуске любого запроса на своем веб-сайте. Я не владею SQL, поэтому любая помощь будет оценена.Ошибка арифметического переполнения, преобразующая числовое значение в тип данных numeric

Трассировка стека:

[SqlException (0x80131904):. Арифметическое переполнение при преобразовании числовой к типу данных числового] ​​
System.Data.SqlClient.SqlConnection.OnError (SqlException исключение, Логическое breakConnection) +1951066
System.Data.SqlClient.SqlInternalConnection.OnError (SqlException исключение, булева breakConnection) +4847051
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj) +194 System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392 System.Data.SqlClient.SqlDataReader.HasMoreRows() +157 System .Data.SqlClient.SqlDataReader.ReadInternal (Boolean SetTimeout) +197 System.Data.SqlClient.SqlDataReader.Read() +9
System.Data.Common.DataAdapter.FillLoadDataRow (SchemaMapping отображение) +78 System.Data.Common .DataAdapter.FillFromReader (DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) +164
System.Data.Common.DataAdapter.Fill (набор данных DataSet, Строка srcTable, IDataReader DataReader, Int32 startRecord, Int32 MaxRecords) +353
System.Data.Common.DbDataAdapter.FillInternal (набор данных набора данных, DataTable [] DataTables , Int32, Int32 startRecord MaxRecords, Строка srcTable, команда IDbCommand, поведение CommandBehavior) +164
System.Data.Common.DbDataAdapter.Fill (набор данных DataSet, Int32 startRecord, Int32 MaxRecords, Строка srcTable, команда IDbCommand, поведение CommandBehavior) +287
System.Data.Common.DbDataAdapter.Fill (DataSet dataSet, String srcTable) +92
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect (DataSourceSelectArguments аргументы) +1297 System.Web.UI.WebControls.Repeater.GetData() +35
System.Web.UI.WebControls.Repeater.CreateControlHierarchy (Boolean useDataSource) +220
System.Web.UI.WebControls.Repeater.OnDataBinding (EventArgs е): +51
System.Web.UI.WebControls.Repeater.DataBind() +75
System.Web.UI.WebControls .Repeater.EnsureDataBound() +55
System.Web.UI.WebControls.Repeater.OnPreRender (EventArgs e) +15
System.Web.UI.Control.PreRenderRecursiveInternal() +80
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web .UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842

+0

См. Http://stackoverflow.com/questions/2059134/why-sql-server-throws-arithmetic-overflow-error-converting-int-to-data-type-nume. –

ответ

1

Места, чтобы искать либо:

  1. Существует запрос на обновление, который пытается изменить Int (или какой-то другой тип данных малое число) с большим количеством типов данных (например, один или два).
  2. Он пытается использовать инерт с теми же условиями.

Сфокусируйтесь на поиске чего-то изменяющегося значения с числовыми полями и проверьте, какие типы данных пытаются внести эти изменения. Когда вы видите несоответствие, это, скорее всего, ваш преступник.

0

изменить sum(col1) на sum(cast(col1 as bigint)), чтобы динамически изменить тип текущего столбца или изменить его в режиме проектирования таблицы.

Смежные вопросы

 Смежные вопросы