Курсоры плохи, когда они используются для решения основанной на множестве проблемы с процедурным кодом.Я не думаю, что курсор - это плохая идея в вашем сценарии.
Когда нужно запускать операции над несколькими базами данных (резервное копирование, проверка целостности, обслуживание индекса и т. Д.), Нет проблем с использованиемкурсор.Конечно, вы могли бы создать временную таблицу, которая содержит имена баз данных и проходить через нее ... но это все еще процедурный подход.
Для вашего конкретного случая, если вы не удаляете строки в этих таблицах на основе некоторыхWHERE
критерий предложения, рассмотрите возможность использования TRUNCATE TABLE
вместо DELETE FROM
.Различия между этими двумя операциями объясняются здесь .Обратите внимание, что пользователю, работающему с TRUNCATE TABLE
, потребуется разрешение ALTER
для затронутых объектов.