2009-07-24 13 views
25

Al ejecutar la siguiente consulta en SQL Server Management Studio aparece el siguiente error.Error del servidor SQL en el comando de actualización: "Se produjo un error grave en el comando actual"

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.

  • Los registros se han truncado
  • hay un disparador de actualización pero este no es el tema
  • el recuento de transacción es cero (@@ trancount)

I han intentado la misma declaración de actualización en un par de otras tablas en la base de datos y funcionan bien.

DBCC CHECKTABLE('table_name'); 

da

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. 

Respuesta

35

Acabo de tener el mismo error, y fue a un índice dañado. Volver a indexar la tabla solucionó el problema.

Me di cuenta de que este hilo tiene un año de antigüedad, pero pensé que sería útil mencionarlo en caso de que alguien lo descubriera en el futuro (como acabo de hacer).

+0

Hoy tuve exactamente el mismo error. La columna que arrojó el error ni siquiera estaba involucrada con el índice que estaba dañado. –

4

Run DBCC CHECKTABLE('table_name');

Comprobar la carpeta de registro donde está instalado el isntance (\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG por lo general) para cualquier archivo llamado 'SQLDUMP*'

+0

aún no ha checktable dar nada, voy a tratar de conseguir el acceso a la archivos de registro - gracias. –

+0

También pruebe DBCC CHECKDB (yourdb) para extender el control a toda la base de datos. Si encuentra archivos de volcado, busque dentro de los archivos sqldump * .txt más nuevos. –

8

En mi caso, yo estaba usando SubQuery y tuve un problema similar. Me di cuenta de que el problema es la fuga de memoria.

Reiniciando MSSQL causa del servicio para vaciar el recurso tempDb y liberar gran cantidad de memoria. así que esto fue resolver el problema.

+0

alguna solución? – Amir

1

En mi caso, yo estaba usando System.Threading.CancellationTokenSource para cancelar una SqlCommand pero no controlar la excepción con catch (SqlException) { }

Cuestiones relacionadas