在发给同事之前,我需要清空一个LDF文件。如何强制SQL Server截断日志?


当前回答

因为我的答案就藏在评论里。对于SQL Server 2012及以上版本,您可以使用以下命令:

BACKUP LOG Database TO DISK='NUL:'
DBCC SHRINKFILE (Database_Log, 1)

其他回答

对于SQL Server 2008,命令为:

ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL

这将我的14GB日志文件减少到1MB。

因为我的答案就藏在评论里。对于SQL Server 2012及以上版本,您可以使用以下命令:

BACKUP LOG Database TO DISK='NUL:'
DBCC SHRINKFILE (Database_Log, 1)

使用truncate_only和DBCC shrinkfile命令备份日志logname

在管理工作室:

不要在运行环境中这样做,但是为了确保你尽可能地缩小你的开发数据库: 右键单击数据库,选择Properties,然后选择Options。 确保“恢复模式”设置为“简单”,而不是“完整” 单击OK 再次右键单击数据库,选择“任务->收缩->文件” 更改文件类型为“日志” 单击OK。

或者,SQL来做它:

 ALTER DATABASE mydatabase SET RECOVERY SIMPLE
 DBCC SHRINKFILE (mydatabase_Log, 1)

裁判:http://msdn.microsoft.com/en-us/library/ms189493.aspx

如果我没记错的话……在查询分析器或等效程序中:

BACKUP LOG  databasename  WITH TRUNCATE_ONLY

DBCC SHRINKFILE (  databasename_Log, 1)