Dot*_*per 9 sql-server-2008 sql-server shrink system-tables
我正在尝试缩小数据库文件,但遇到了错误。
使用sys.database_files
作品中的 file_id ,但使用逻辑文件名会产生错误。
两个语句中的逻辑文件名相同,所以这不是问题。此外,正在连接的数据库是相同的。以下按预期工作:
declare @fileId as int = (select file_id from sys.database_files where name = 'XY')
DBCC SHRINKFILE (@fileId, 0, TRUNCATEONLY)
Run Code Online (Sandbox Code Playgroud)
然而以下...
DBCC SHRINKFILE ('XY' , 0, TRUNCATEONLY)
Run Code Online (Sandbox Code Playgroud)
...将导致错误 8985:
消息 8985,级别 16,状态 1,第 1 行
无法在 sys.database_files 中找到数据库“<我的数据库>”的文件“XY”。该文件要么不存在,要么已被删除。
修改了我的答案,测试没有显示为它不起作用的正当理由。
需要检查的几件事
尝试将恢复模式从完整模式切换到简单模式,然后再切换回完整模式。更新到 SP3 时有一个明显的错误。更改恢复模式将重置日志序列号,无论出于何种原因,至少是暂时清除问题。
归档时间: |
|
查看次数: |
26034 次 |
最近记录: |