在SQL Server Management Studio中运行以下查询会出现以下错误。
update table_name set is_active = 0 where id = 3
当前命令发生严重错误。结果(如果有的话)应该被丢弃。
我在数据库中的其他几个表上尝试了相同的更新语句,它们工作正常。
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.
答案 0 :(得分:45)
我只是遇到了同样的错误,而且它是一个损坏的索引。 重新索引表修复了问题。
答案 1 :(得分:10)
在我的情况下,我使用SubQuery
并遇到了同样的问题。我意识到问题是内存泄漏。
重新启动MSSQL
服务原因以刷新tempDb
资源并释放大量内存。
所以这就解决了这个问题。
答案 2 :(得分:6)
MS KB有3种可能性
当我看到这样的东西时:我总是认为修补程序,引擎,服务器错误等。
答案 3 :(得分:4)
运行DBCC CHECKTABLE('table_name');
检查安装了实例的LOG文件夹(通常为\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG
),以查找名为“SQLDUMP*
”的任何文件
答案 4 :(得分:3)
一个不同的场景,但同样的错误:当我尝试使用存储过程将记录插入临时表时,我收到此错误。原来,参数不匹配。我试图将BIGINT插入INT。
归功于Vicky Harp:http://vickyharp.com/2012/03/troubleshooting-a-severe-error-occurred-on-the-current-command/
答案 5 :(得分:1)
在我的情况下,我使用System.Threading.CancellationTokenSource
取消SqlCommand
但未使用catch (SqlException) { }
处理例外
答案 6 :(得分:1)
此错误的确切含义是:发生了一些不好的事情,通常不会发生。
在我最近的情况下,真正的错误是:
Msg 9002, Level 17, State 2, Procedure MyProcedure, Line 2 [Batch Start Line 3]
The transaction log for database 'MyDb' is full due to 'LOG_BACKUP'.
这是我要尝试的事情的清单,也许按照这种顺序:
答案 7 :(得分:0)
当您的数据源存在无法处理的通用问题时,似乎会发生这种情况。
就我而言,我插入了一堆数据,索引在表上已损坏,需要重建。我找到了重新构建所有脚本的脚本,似乎已对其进行了修复。为了找到错误,我在数据库上运行了相同的查询-以前已经运行了100多次。
答案 8 :(得分:0)
我在Hangfire中遇到错误,无法访问库的内部工作原理,或者我能够找到主要原因。
基于@ Remus Rusanu的答案,我可以使用以下脚本对此进行修复。
--first set the database to single user mode
ALTER DATABASE TransXSmartClientJob
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
-- Then try to repair
DBCC CHECKDB(TransXSmartClientJob, REPAIR_REBUILD)
-- when done, set the database back to multiple user mode
ALTER DATABASE TransXSmartClientJob
SET MULTI_USER;
GO
答案 9 :(得分:0)
在同一服务器上的多个数据库/表中遇到此问题后,我们刚刚找到了另一个可能的解决方案。
是否打开了到sql服务器的最大连接数。我们有一个没有关闭SQL连接并保持打开状态的应用程序,因此我们运行的连接数约为28K-31K(SQL Sever的最大值为32K ish),并且我们注意到,一旦我们杀死了数千个睡眠连接它解决了此问题上列出的错误。
解决方法是更新应用程序,以确保它们关闭了连接而不是保持打开状态。
答案 10 :(得分:0)
在我的情况下,方法:context.Database.CreateIfNotExists();
在创建数据库之前多次调用并导致错误崩溃当前命令上发生了严重错误。结果(如果有的话)应该被丢弃。
答案 11 :(得分:0)
就我而言,这是其他原因,+=
运算符导致了这种情况。我不得不用 += X
替换 field = field + X
来克服这个问题。虽然我无法在 Microsoft 网站上找到任何相关的知识库,但我认为这是一个错误。
我使用的是 SQL Server 2008 R2(10.50.1600)。