Usuário com melhor resposta
Delete de registros relacionados

Pergunta
-
Olá pessoal,
Eu estou precisando fazer uma limpeza em um banco em ambiente de desenvolvimento e quando tento apagar registros de uma tabela com o Delete From NomeTabela ocorre erro de FK pois existe registros relacionados em outra tabela.
Eu saber se tem como eu forçar um Delete e se possível em cascata, mesmo que exista registros relacionados ele deixe apagar e se possível apagar os registros relacionados também, mas o principal é que ele deixe apagar o registro.
Respostas
-
Deleted
- Marcado como Resposta Edmar Munhoz terça-feira, 30 de junho de 2015 14:46
-
Edmar,
Não modifique sua "Chave Estrangeira" para exclusão em cascata através do "DELETE CASCADE". Se esta opção estiver habilitada você poderá causar problemas de desempenho em consultas e manutenções (INSERT, UPDATE e DELETE) que envolverem estas colunas.
O melhor procedimento é realizar as exclusões na ordem da tabela "filho" para a tabela "pai" deste relacionamento.
Desativar a(s) chave(s) estrangeira(s) abre uma possibilidade para falhas na integridade de dados, então esteja ciente dos problemas que podem causar à você e a todos que utilizam este banco de dados e execute este procedimento em um horário alternativo, onde "ninguém" da sua Equipe de Desenvolvimento possa manipular esses dados em paralelo.
Segue o script T-SQL para desabilitar uma FK:
ALTER TABLE TB_SuaTabelaPai NOCHECK CONSTRAINT FK_TB_PAI_TB_FILHO; GO
Para maiores informações veja:
https://technet.microsoft.com/en-us/library/aa933118(v=sql.80).aspx
https://technet.microsoft.com/en-us/library/aa275865(v=sql.80).aspx
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Edmar Munhoz terça-feira, 30 de junho de 2015 14:46
Todas as Respostas
-
Deleted
- Marcado como Resposta Edmar Munhoz terça-feira, 30 de junho de 2015 14:46
-
Edmar,
Não modifique sua "Chave Estrangeira" para exclusão em cascata através do "DELETE CASCADE". Se esta opção estiver habilitada você poderá causar problemas de desempenho em consultas e manutenções (INSERT, UPDATE e DELETE) que envolverem estas colunas.
O melhor procedimento é realizar as exclusões na ordem da tabela "filho" para a tabela "pai" deste relacionamento.
Desativar a(s) chave(s) estrangeira(s) abre uma possibilidade para falhas na integridade de dados, então esteja ciente dos problemas que podem causar à você e a todos que utilizam este banco de dados e execute este procedimento em um horário alternativo, onde "ninguém" da sua Equipe de Desenvolvimento possa manipular esses dados em paralelo.
Segue o script T-SQL para desabilitar uma FK:
ALTER TABLE TB_SuaTabelaPai NOCHECK CONSTRAINT FK_TB_PAI_TB_FILHO; GO
Para maiores informações veja:
https://technet.microsoft.com/en-us/library/aa933118(v=sql.80).aspx
https://technet.microsoft.com/en-us/library/aa275865(v=sql.80).aspx
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Edmar Munhoz terça-feira, 30 de junho de 2015 14:46