Je reçois quotidiennement de nombreuses demandes de modification, demandant la suppression ou la mise à jour d'un enregistrement dans un environnement de production.Quelles précautions doivent être prises avant de supprimer des enregistrements d'une table dans la base de données de production?
Je ne généralement pas les bases de données propres donc pas déclencheurs, tables d'historique, etc.
Par exemple
delete
from orders
where orderNo in ('x123', 'x124', 'x129')
ce que j'ai l'habitude que les précautions sont les suivantes:
1) trouve quelle est la taille de la table ->
sp_spaceused 'dbo.orders'
en fonction de la taille du tabl sauvegarde e I la table entière ou seulement la plage affectée par la suppression/mise à jour
Par exemple:
select * into tablebackups.dbo._MM_20140502_orders_1515
from Orders
where orderNo in ('x123', 'x124', 'x129')
Cela me permet de récupérer les données si besoin est.
2) Je vérifie les contraintes, je recherche particulièrement les tables qui dépendent de celle-ci, quel type de contraintes et s'il y a ON CASCADE DELETE/UPDATE
.
sp_helpconstraint 'dbo.orders'
En fonction du résultat de ce que je peux aller ouvrir avant une opération, la suppression feu, et si elle passe par COMMIT
la transaction.
Questions:
- Quelqu'un at-il un script pour afficher des contraintes CASCADE?
- Quelqu'un at-il un script pour afficher les enregistrements dépendants?