2009-07-24 21 views
25

L'esecuzione della seguente query in SQL Server Management Studio restituisce l'errore seguente.Errore del server SQL durante l'aggiornamento del comando - "Si è verificato un errore grave nel comando corrente"

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.

  • I registri sono stati troncati
  • c'è un trigger di aggiornamento, ma questo non è il problema
  • il conteggio delle transazioni è pari a zero (@@ trancount)

I ho provato la stessa dichiarazione di aggiornamento su un paio di altre tabelle nel database e funzionano bene.

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. 

risposta

35

Ho appena avuto lo stesso errore, ed era giù per un indice corrotto. La reindicizzazione della tabella ha risolto il problema.

Mi rendo conto che questo thread è vecchio di un anno, ma ho pensato che valesse la pena di menzionare in caso qualcuno lo incontrasse in futuro (come ho appena fatto).

+0

Ho avuto esattamente lo stesso errore oggi. La colonna che lanciava l'errore non era nemmeno coinvolta con l'indice che era danneggiato. –

4

Run DBCC CHECKTABLE('table_name');

Controllare la cartella di registro in cui è installato l'isntance (\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG solito) per qualsiasi file chiamato 'SQLDUMP*'

+0

non ha ancora checktable dare nulla, cercherò di ottenere l'accesso al file di registro - grazie. –

+0

Prova anche DBCC CHECKDB (yourdb) per estendere il controllo all'intero database. Se trovi file di dump, guarda all'interno dei file sqldump * .txt più recenti. –

8

Nel mio caso, stavo usando SubQuery e ho avuto lo stesso problema. Mi sono reso conto che il problema è dovuto alla perdita di memoria.

Riavviare MSSQL causa di servizio per svuotare la risorsa tempDb e liberare un'enorme quantità di memoria. quindi questo era risolvere il problema.

+0

qualsiasi soluzione alternativa? – Amir

1

Nel mio caso, stavo usando System.Threading.CancellationTokenSource di annullare una SqlCommand ma non gestisce l'eccezione con catch (SqlException) { }

Problemi correlati