Alguém saberia como posso fazer o DBCC CheckDB produzir um erro? Estou testando um script e preciso do DBCC Checkdb no modo mais simples para retornar um erro, também ao tentar reparar e ao tentar entrar no modo monousuário...
O comando dbcc checkdb simples que estou usando faz parte de um arquivo em lote e é o seguinte:
OSQL -S MYPC -E -d MyDB -l 10 -Q "DBCC CHECKDB(AG_DB_STORESQL)" -b -o c:\MyFolder\MSSQL_DB_CHECK.Log
Se nenhum erro for encontrado, o script será encerrado. Se forem encontrados erros, o script tenta corrigi-los com a opção REPAIR_REBUILD e, se isso falhar, o script tenta corrigi-los com a opção REPAIR_ALLOW_DATA_LOSS. Obviamente, antes de tentar reparar, o script tenta colocar o banco de dados no modo de usuário único (que também é uma armadilha de erro)
Então, tudo o que estou procurando é uma maneira de fazer com que o DBCC CheckDB retorne um erro.
O script de demonstração de corrupção útil foi criado por Paul Randal . Estes são realmente bons e iriam ajudá-lo muito. Navegue pelos links abaixo
Bancos de dados e scripts de demonstração de corrupção
Usando a conexão DAC para corrigir tabelas de sistema corrompidas
Vários cenários de corrupção do banco de dados do SQL Server
Use o ambiente letal
dbcc writepage ({'dbname' | dbid}, fileid, pageid, offset, length, data [, directORbufferpool])
ON a TEST (NON-PROD) totalmente sandbox.Além de "O Guru" Paul Randal , @SteveStedman tem uma boa série de Desafio de Corrupção de Banco de Dados (com solução - mas consulte mais tarde quando tentar resolvê-lo sozinho).
Você poderia criar uma produção armazenada para esta finalidade:
Em seguida, atualize sua linha de comando para