Три вещи, которым я научился на протяжении многих лет ...
Сначала, если вы обновляете или удаляете живые данные, сначала напишите запрос SELECT с предложением WHERE, которое вы будете использовать. Убедитесь, что это работает. Убедитесь, что это правильно. Затем добавьте оператор UPDATE / DELETE к известному рабочему предложению WHERE.
Вы никогда не хотите иметь
DELETE FROM Customers
сидит в вашем анализаторе запросов и ждет, пока вы напишете предложение WHERE ... случайно нажал "выполнить", и вы только что убили свою таблицу клиентов. К сожалению.
Кроме того, в зависимости от вашей платформы, узнайте, как сделать быструю и грязную резервную копию таблицы. В SQL Server 2005
SELECT *
INTO CustomerBackup200810032034
FROM Customer
скопирует каждую строку из всей таблицы Customer в новую таблицу с именем CustomerBackup200810032034, которую вы можете затем удалить после того, как вы сделали обновления и убедились, что все в порядке. Если случится худшее, гораздо проще восстановить отсутствующие данные из этой таблицы, чем попытаться восстановить резервную копию прошлой ночью с диска или ленты.
Наконец, будьте осторожны с каскадным удалением, избавляясь от вещей, которые вы не намеревались удалять - проверьте связи ваших таблиц и ключевые ограничения перед тем, как что-либо изменить.