2009-07-24 99 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) { }