Недавно я столкнулся с ошибкой:
System.Data.SqlClient.SqlException: журнал транзакций для базы данных «mydatabase» заполнен. Чтобы узнать, почему пространство в журнале нельзя использовать повторно, см. столбец log_reuse_wait_desc в sys.databases.
на одной из моих служб Windows. Он должен повторить попытку после обнаружения исключения Sql, чего я не ожидал, так это того, что казалось, что данные все еще проходят (кстати, я использую SqlBulkCopy), независимо от того, что он генерирует исключение. Я никогда не сталкивался с этим сценарием раньше.
Я хотел бы знать, есть ли другие сценарии, в которых может произойти подобное, и вообще возможно ли это вообще?
ИЗМЕНИТЬ:
System.Data.UpdateException: произошла ошибка при обновлении записей. Подробнее см. InnerException. ---> System.Data.SqlClient.SqlException: журнал транзакций для базы данных «MY_DB» заполнен. Чтобы узнать, почему пространство в журнале нельзя использовать повторно, см. столбец log_reuse_wait_desc в sys.databases в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection) в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException , логическое значение breakConnection) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) в System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultS bulkCopyDataClientjState at System.Data.SqlClient.TdsParser.State, TObjectdsParserber .SqlDataReader.ConsumeMetaData() в System.Data.SqlClient.SqlDataReader.get_MetaData() в System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) в System.Data.SqlClient.SqlCommand.RunCommandBehExecute( cmdBehavior, RunBehavior runBehavior, логическое значение returnStream, логическое значение asyn c) в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, метод String, результат DbAsyncResult) в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runStreamBehavior, String метод return ) в System.Data.SqlClient.SqlCommand.ExecuteReader (поведение CommandBehavior, метод String) в System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (поведение CommandBehavior) в System.Data.Common.DbCommand.ExecuteReader (поведение CommandBehavior) в System.Data .Mapping.Update.Internal.DynamicUpdateCommand.Execute(переводчик UpdateTranslator, подключение EntityConnection, Dictionary
2 identifierValues, List
1 generateValues) в System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, адаптер IEntityAdapter) --- Конец внутренней трассировки стека исключений --- в System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityState Менеджер состояний, адаптер IEntityAdapter) в System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache) в System.Data.Objects.ObjectContext.SaveChanges(логическое значение acceptChangesDuringSave) в System.Data.Objects.ObjectContext.SaveChanges()
PS. Если кто-нибудь знает код ошибки для приведенного выше исключения, это также очень поможет.