2009-07-24 119 views
25

运行在SQL Server Management Studio中下面的查询“当前命令发生了严重错误”给出了下面的错误。SQL Server错误 -

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.

  • 日志已被截断
  • 有一个更新触发器,但这个心不是问题
  • 事务计数为零(@@ TRANCOUNT)

我已经在数据库中的其他几个表上尝试过相同的更新语句,并且它们工作正常。

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. 

回答

35

我刚刚发生了同样的错误,并且发生了一个损坏的索引。 重新索引表解决了这一问题。

我意识到这个线程已经过了一年,但我认为值得一提的是未来有人会遇到它(就像我刚才那样)。

+0

今天我有完全一样的错误。抛出错误的列甚至没有涉及被破坏的索引。 – 2013-03-15 10:02:18

4

运行DBCC CHECKTABLE('table_name');

检查安装了isntance日志文件夹(\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG通常)名为 'SQLDUMP*'

+0

CHECKTABLE didnt异常给任何东西,我将努力让访问日志文件 - 谢谢。 – 2009-07-24 01:14:41

+0

也请尝试DBCC CHECKDB(yourdb)将检查扩展到整个数据库。如果您发现转储文件,请查看较新的sqldump * .txt文件。 – 2009-07-24 01:16:53

8

就我而言,我是用SubQuery,有一个同样的问题。我意识到问题来自内存泄漏。

重新启动MSSQL服务原因刷新tempDb资源并释放大量内存。 所以这是解决问题。

1

以我为例,我是用System.Threading.CancellationTokenSource取消SqlCommand但不处理与catch (SqlException) { }