Sql Server 2008 R2 DBCC SHRINKFILE 严重错误

2 dbcc sql-server-2008-r2

我正在尝试在 Sql Server 2008 R2 中运行以下命令:

DBCC SHRINKFILE('filename')
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此命令时,出现以下错误:

Msg 0, Level 11, State 0, Line 0
A severe error occurred on the current command.  The results, if any, should be discarded.
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么会出现此错误以及如何解决此问题?

谢谢!

Aar*_*and 5

您是否尝试以 MB 为单位指定文件名和目标大小,例如

DBCC SHRINKFILE('filename', 20);
Run Code Online (Sandbox Code Playgroud)

或者 TRUNCATEONLY 选项,它不会尝试任何令人讨厌的事情,例如重新组织所有物理数据:

DBCC SHRINKFILE('filename', TRUNCATEONLY);
Run Code Online (Sandbox Code Playgroud)

您也可以先尝试确保数据库处于单用户模式:

ALTER DATABASE db SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
Run Code Online (Sandbox Code Playgroud)

...并关闭任何可能与收缩操作冲突的备份/日志备份或其他维护作业。如果它仍然发生,请对该数据库运行 CHECKDB 并让我们知道结果:

DBCC CHECKDB (db) WITH NO_INFOMSGS, ALL_ERRORMSGS;
Run Code Online (Sandbox Code Playgroud)

但作为旁注,您确实知道缩小是不好的,通常应该保留用于特殊事件和情况,对吗?