Ответ 1
У меня была та же самая ошибка, и это было до поврежденного индекса. Повторная индексация таблицы устранила проблему.
Выполнение следующего запроса в SQL Server Management Studio дает ошибку ниже.
update table_name set is_active = 0 where id = 3
Серьезная ошибка произошла в текущей команде. Результаты, если таковые имеются, должны быть отброшены.
Я пробовал один и тот же оператор обновления на пару других таблиц в базе данных, и они работают нормально.
DBCC CHECKTABLE('table_name');
дает
DBCC results for 'table_name'.
There are 13 rows in 1 pages for object "table_name".
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
У меня была та же самая ошибка, и это было до поврежденного индекса. Повторная индексация таблицы устранила проблему.
В моем случае я использовал SubQuery
и имел ту же проблему. Я понял, что проблема связана с утечкой памяти.
Перезапуск службы MSSQL
вызывает сброс ресурса tempDb
и освобождает огромный объем памяти.
так что это решило проблему.
В MS KB есть 3 возможности
Когда я вижу такие вещи: я всегда думаю, что исправления, движок, ошибки сервера и т.д.
4 результата: поиск "Msg 0, уровень 11, состояние 0, строка 0" Суровая ошибка в текущей команде"
Изменить: Это на MS Connect тоже
Выполнить DBCC CHECKTABLE('table_name');
Проверьте папку LOG, в которой установлен isntance (обычно \Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG
) для любого файла с именем 'SQLDUMP*
'
Другой сценарий, но та же ошибка: я получил эту ошибку, когда пытался вставить записи во временную таблицу с помощью хранимой процедуры. Оказалось, что существует несоответствие параметров. Я пытался вставить BIGINT в INT.
Кредит переходит к Вики Харпу: http://vickyharp.com/2012/03/troubleshooting-a-severe-error-occurred-on-the-current-command/
В моем случае я использовал System.Threading.CancellationTokenSource
для отмены SqlCommand
, но не обрабатывал исключение с помощью catch (SqlException) { }
Эта ошибка именно то, что она означает: случилось что-то плохое, что обычно не происходит.
В моем последнем случае РЕАЛЬНАЯ ошибка была:
Msg 9002, Level 17, State 2, Procedure MyProcedure, Line 2 [Batch Start Line 3]
The transaction log for database 'MyDb' is full due to 'LOG_BACKUP'.
Вот мой контрольный список вещей, которые можно попробовать, возможно, именно в этом порядке:
Похоже, это происходит, когда существует общая проблема с вашим источником данных, который он не обрабатывает.
В моем случае я вставил кучу данных, индексы стали повреждены в таблице, их нужно было перестроить. Я нашел сценарий, чтобы восстановить их все, казалось, это исправить.