我想重新设置数据库的日志文件的初始大小,因为在设置数据库时它会错过设置非常大的值(40G)。而当我想缩小它时,它的大小将等于初始大小。SQLServer alter database修改文件问题
我试图用这个SQL与SIZE参数设置:
ALTER DATABASE [DBNAME] MODIFY FILE (NAME = N'DBNAME_log', SIZE=1MB, MAXSIZE = 2048GB)
GO
不幸的是,只得到错误信息:
MODIFY FILE失败。指定的大小小于或等于当前的 大小。
似乎尺寸参数需要大于当前尺寸。
这里是问题总结:
如何重新设置数据库的文件初始大小?无论当前文件大小如何,它都足够小。
我知道我的数据库名称[数据库],并能得到与其相关的日志文件名使用SQL:
DECLARE @logname NVARCHAR(100); SELECT @logname = name FROM sys.database_files WHERE type_desc = 'LOG'
但为什么会使用结果@logname不输入数据库名称,如:
ALTER DATABASE [OrderTracker] MODIFY FILE (*NAME = @logname*, size=1MB, MAXSIZE = 2048GB)
你以前做一个备份?备份应该清空日志。 (种) –
你看这个吗? https://docs.microsoft.com/en-us/sql/relational-databases/logs/manage-the-size-of-the-transaction-log-file –
我将数据库设置为SIMPLE模式并使用SQL收缩:DBCC SHRINKFILE(@logname,TRUNCATEONLY);它确实较小,但等于或大于其初始尺寸。 –