Ошибка типа "SET содержат неверные значения "ARITHABORT"¶
При создании, редактировании, или удалении контрагента выпадает ошибка типа:
27/02/2020 10:38:51 : An error with the database: Ошибка INSERT. Следующие параметры SET содержат неверные значения: "ARITHABORT". Убедитесь, что параметры SET содержат значения, подходящие для использования с индексированные представления, индексы для вычисляемых столбцов, отфильтрованные индексы и/или уведомления о запросах, методы типов данных XML и/или операции с пространственными индексами. : в System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) : в System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) : в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) : в System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) : в System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) : в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) : в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) : в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) : в System.Data.SqlClient.SqlCommand.ExecuteNonQuery() : в MediaPlanner.DataAccess.MediaPlanDBAccessor.ExecuteQuery(String queryText, SqlTransaction transaction, SqlConnection dbConnection, Dictionary`2 parameters) : в MediaPlanner.DataAccess.MediaPlanDBAccessor.ExecuteInsertQuery(String tableName, Dictionary`2 parameters, Boolean openConnection) : INSERT INTO mp_covenantees(name,contacts,users_id,modificationTime,agency,discount_type,discount_value,use_discount,ID_Number) VALUES (@name,@contacts,@users_id,GetDate(),@agency,@discount_type,@discount_value,@use_discount,@ID_Number) : name=Азимут;contacts=;users_id=15;agency=;discount_type=Discount;discount_value=0;use_discount=False;ID_Number=;
Теоретически подобная ошибка может появляться с любым другим действием при обращении к базе данных.
Причем, если создать контрагента прямым запросом из SQL Server Management Studio, запрос выполняется без ошибок и контрагент создается.
Проблема решается путем включения параметра "Прерывание арифметических действий" или в старых версиях называется "Прерывание при делении на ноль".
На базе данных выполняется скрипт "alter database "DB_NAME" set arithabort on" для включения этого параметра.
После чего, создание, редактирование и удаление контрагентов стало выполняться успешно из Медиапланера и без ошибок.