Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Excluindo grandes quantidades de dados do SQL Server 2008


Sua pergunta é bastante vaga, mas acho que você está dizendo isso:
  • Posso INSERIR dados em meu banco de dados
  • Atualizar meus dados parece difícil, então prefiro apenas DELETE e depois INSERT novamente (porque já escrevi esse código)

Eu diria que isso é uma má ideia, pelos seguintes motivos (e sem dúvida muitos mais):
  • Mesmo se você apenas DELETE, você ainda precisa identificar as linhas corretas para excluir, excluir das tabelas na ordem correta etc. Portanto, é improvável que você economize muito tempo de qualquer maneira
  • Você adicionará complexidade desnecessária e trabalho de manutenção extra ao aplicativo:manipulação de transações, código adicional para manter, alterações de permissões etc.
  • Adicionar lógica do lado do servidor ao banco de dados na forma de gatilhos e/ou procedimentos se tornará mais difícil porque um DELETE não significa necessariamente mais DELETE, pode significar o início de um UPDATE (quero dizer logicamente, não fisicamente) e isso é muito difícil de manter, além de potencialmente quebrar qualquer código, rastreamento ou auditoria baseado em ações ou eventos DML
  • O banco de dados precisará fazer mais registros porque você dividiu uma operação em duas

Talvez você tenha boas razões para querer evitar uma ATUALIZAÇÃO, mas "é difícil escrever" não deveria ser uma delas (desculpe se estou simplificando demais sua situação).

Você pode obter uma resposta mais útil se explicar exatamente o que é "difícil", fornecer algumas informações sobre o que significa "grande quantidade de dados", mostrar algumas estruturas de tabela e código que ilustram suas dificuldades etc.