2009-07-24 6 views
25

Ausführen der folgenden Abfrage in SQL Server Management Studio gibt den folgenden Fehler.SQL Server-Fehler bei Update-Befehl - "Ein schwerwiegender Fehler trat bei dem aktuellen Befehl auf"

update table_name set is_active = 0 where id = 3 

A severe error occurred on the current command. The results, if any, should be discarded.

  • Die Protokolle wurden abgeschnitten
  • gibt es ein Update-Trigger, aber das ist nicht das Problem
  • die Transaktionsanzahl ist Null (@@ trancount)

I habe die gleiche Update-Anweisung auf ein paar andere Tabellen in der Datenbank versucht und sie funktionieren gut.

DBCC CHECKTABLE('table_name'); 

gibt

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. 

Antwort

35

Ich hatte gerade den gleichen Fehler, und es lag an einem beschädigten Index. Das erneute Indizieren der Tabelle behob das Problem.

Ich realisiere, dass dieser Thread ein Jahr alt ist, aber ich dachte, es wäre erwähnenswert, wenn jemand in der Zukunft darauf stößt (wie ich es gerade getan habe).

+0

Ich hatte heute genau den gleichen Fehler. Die Spalte, die den Fehler verursacht, war nicht einmal mit dem Index verbunden, der ebenfalls beschädigt wurde. –

4

Run DBCC CHECKTABLE('table_name');

Überprüfen Sie die LOG Ordner, in dem die isntance installiert ist (\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG in der Regel) für jede Datei mit dem Namen 'SQLDUMP*'

+0

Checktable nur knapp sein Ziel geben nichts Handhabung, werde ich versuchen, Zugriff auf die bekommen Protokolldateien - Danke. –

+0

Versuchen Sie auch, DBCC CHECKDB (yourdb) die Überprüfung auf die gesamte Datenbank zu erweitern. Wenn Sie Dump-Dateien finden, schauen Sie in die neueren sqldump * .txt-Dateien. –

8

In meinem Fall habe ich SubQuery verwendet und hatte ein gleiches Problem. Ich erkannte, dass das Problem von Speicherleck ist.

Neustart MSSQL Service Ursache zu spülen tempDb Ressource und kostenlos große Menge an Speicher. so das war das Problem zu lösen.

+0

jede Problemumgehung? – Amir

1

In meinem Fall ich System.Threading.CancellationTokenSource wurde mit einem SqlCommand abzubrechen aber die Ausnahme mit catch (SqlException) { }

Verwandte Themen