Ao lidar com espaço em disco fragmentado, adicionei um segundo arquivo de dados a um dos meus bancos de dados. A maioria dos dados agora está no segundo arquivo e gostaria de descartar o primeiro para simplificar as coisas. No entanto, é o arquivo de dados primário:
Msg 5020, Level 16, State 1, Line 3
The primary data or log file cannot be removed from a database.
Então, como faço para marcar o segundo arquivo como primário, para que eu possa excluir o primeiro arquivo?
Ao pesquisar esse problema no Google, vejo muitas pessoas tentando remover grupos de arquivos , mas estou apenas tentando descartar um arquivo de um grupo.
Mesma situação, mas sem o problema referente ao "arquivo de dados primário": https://stackoverflow.com/questions/2183742/remove-merge-sql-servers-database-secondary-data-file .
Semelhante, mas para arquivos de log com problemas diferentes: https://stackoverflow.com/questions/10839374/sql-server-database-has-2-log-files-and-i-want-to-remove-one-how . Estou interessado em remover um arquivo de dados.
Uma situação semelhante, mas aí o problema está em esvaziar o arquivo: http://www.sqlservercentral.com/Forums/Topic464326-5-1.aspx .
O arquivo de banco de dados principal nunca pode ser removido porque contém estruturas de página especiais que existem apenas nesse arquivo e não podem ser realocadas. Se você deseja um único arquivo de banco de dados, mova todos os dados do arquivo secundário usando DBCC SHRINKFILE com a opção EMPTYFILE e remova o arquivo secundário. Por fim, reconstrua/reorganize os índices para reduzir a fragmentação.
Um exemplo de página imóvel é a página de inicialização do banco de dados, que é a página 9 do arquivo de dados primário de cada banco de dados. Consulte Anatomia de uma página de Paul Randal para obter detalhes.