我在更新 SQL Server 2008 中的系统数据库时遇到问题。也许有不同的方法可以做到这一点,但我基本上需要更改/删除对一堆数据库的某些日志文件的增长限制。
懒惰,而不是使用 SSMS 为 100 个数据库中的每一个手动执行此操作,我想我可以创建一个批处理查询。
首先,通过sys.master_files
视图可以看到这些信息:
select database_id, name, max_size
from sys.master_files
通过这个链接(“How to update system tables in SQL 2008 R2”),我发现这个视图的相关数据库实际上是sys.sysbrickfiles
:
但即使在连接sqlcmd
和使用之后sp_configure 'allow updates', 1
,查询sys.sysbrickfiles
返回"Invalid object name 'sys.sysbrickfiles'"
。
我在这里想念什么?
为了手动更新 sys.brickfiles,您需要使用Dedicated Administrator Connection。这可以通过 SQLCMD 获得;您只需要
ADMIN:
在服务器名称之前输入。[在此处插入有关小心和备份的一般警告。]
相反,您可以遍历数据库列表并以这种方式更改自动增长设置(根据我周围的东西快速涂鸦;您可能需要修改它):