none
Deletar dados das tabelas do msdb RRS feed

  • Pergunta

  • Boa tarde.

    Existe a possibilidade de "zerar" o banco msdb? Tipo, apagar logs e outros arquivos que não impactam os outros SD e bancos de usuários.

    Caso possível, sem nenhum impacto (com backup e certo de não mais precisar dos dados ali contidos), pensei em executar o seguinte script:

    USE msdb
    GO
    EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
    GO

    EXEC sp_MSForEachTable '
    IF OBJECTPROPERTY(object_id(''?''), ''TableHasForeignRef'') = 1
    DELETE FROM ?
    else
    TRUNCATE TABLE ?
    '
    GO

    -- reativar a integridade refencial
    EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
    GO

    sexta-feira, 6 de julho de 2012 18:42

Respostas

  • Boa Tarde,

    Uma vez que o MSDB guarda configurações de operadores, job, pacotes SSIS, configurações do Log Shipping, etc não é interessante executar nada que saia apagando dados de todas as tabelas (isso pode inclusive gerar problemas maiores).

    O que normalmente é apagado são as tabelas histórico de execução de jobs, backups e restores (isso sim costuma inchar o MSDB).

    Caso queria "zerar o MSDB", você pode simplesmente parar o SQL Agent e voltar um backup vazio do MSDB.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    sábado, 7 de julho de 2012 19:41