1

我正在尝试缩小数据库的日志并将恢复设置为 simple,但无论我尝试什么,总是会出现错误。

USE 4_o5;
GO
ALTER DATABASE 4_o5
SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (4_o5_log, 10);
GO

sp_helpfile的输出表明日志文件位于(托管解决方案)下:

I:\dataroot\4_o5_log.LDF

请帮助我执行此操作,因为在导入大量数据时日志文件变大,现在不再需要此信息,从那时起有多个(大量)备份。

执行上述查询时的确切错误消息是:

incorrect syntax near '4'.
RECOVERY is not a recognized SET option.
incorrect syntax near _5_log'.

我正在使用 Visual Studio 2010(也在本地安装了 SQL Server Express,在提供程序(共享)处正确安装了 SQL Server 2008)

非常感谢

4

2 回答 2

2

做就是了

USE [4_o5] --need brackets with this DB name, as marc_s commented
GO
DBCC SHRINKFILE (2, 10)

DBCC还获取内部文件 ID 号,我发现您在区分逻辑文件名和物理文件名时遇到问题......这导致我假设您没有多个日志文件或 NDF 等,并且日志文件将始终为 2

但是,你为什么要缩小呢?

要更改恢复模式:ALTER DATABASE [4_o5] SET RECOVERY SIMPLE

于 2010-05-08T19:36:08.820 回答
1

试试这个:

USE [4_o5];
GO
ALTER DATABASE [4_o5] SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE ([4_o5_log], 10);
GO

以数字值开头的数据库名称有点不寻常 - 尝试将其放在方括号中。

更新:对于DBCC SHRINKFILE,您需要日志文件的逻辑名称 - 这是调用的name属性。sp_helpfile你还需要把它放在方括号中:

USE [4_o5]
GO
DBCC SHRINKFILE ([4_o5_log], 10)
GO
于 2010-05-08T18:08:14.887 回答