Estou tendo problemas para atualizar um banco de dados do sistema no SQL Server 2008. Talvez haja uma maneira diferente de fazer isso, mas basicamente preciso alterar/remover restrições de crescimento em determinados arquivos de log para vários bancos de dados.
Sendo preguiçoso, em vez de fazer isso manualmente para cada um dos 100 bancos de dados usando o SSMS, pensei em criar uma consulta em lote.
Primeiro, essas informações são visíveis por meio da sys.master_files
exibição:
select database_id, name, max_size
from sys.master_files
E através deste link ("Como atualizar as tabelas do sistema no SQL 2008 R2") , descobri que o banco de dados relevante para esta exibição é, na verdade sys.sysbrickfiles
:
Mas mesmo depois de conectar sqlcmd
e usar sp_configure 'allow updates', 1
, consultar os sys.sysbrickfiles
retornos "Invalid object name 'sys.sysbrickfiles'"
.
O que estou perdendo aqui?
Para atualizar manualmente os arquivos sys.brick, você precisa usar a Conexão de Administrador Dedicada . Isso está disponível via SQLCMD; você só precisa digitar
ADMIN:
antes do nome do servidor.[Insira um aviso genérico sobre ser cuidadoso e fazer backups aqui.]
Por outro lado, você pode percorrer uma lista de bancos de dados e alterar as configurações de crescimento automático dessa maneira (rabisco rápido com base em algo que eu tinha por aí; você provavelmente precisará modificá-lo):