Я согласен с предложениями по пакетному удалению в управляемые куски, если вы не можете использовать TRUNCATE, и мне нравится предложение удалить / создать из-за его оригинальности, но мне любопытен следующий комментарий в вашем вопросе:
Это в основном эквивалентно выражению TRUNCATE TABLE - за исключением того, что я не могу использовать TRUNCATE
Я предполагаю, что причина этого ограничения связана с безопасностью, которая должна быть предоставлена для прямого усечения таблицы, и тем фактом, что это позволит вам усекать таблицы, отличные от той, которая вас интересует.
Предполагая, что это так, мне интересно, будет ли созданная хранимая процедура, использующая TRUNCATE TABLE и использующая «EXECUTE AS», приемлемой альтернативой предоставлению прав безопасности, необходимых для прямого усечения таблицы.
Надеемся, что это даст вам необходимую скорость, а также решит проблемы безопасности, которые могут возникнуть в вашей компании при добавлении вашей учетной записи в роль db_ddladmin.
Другое преимущество использования хранимой процедуры таким образом состоит в том, что сама хранимая процедура может быть заблокирована, так что только определенным учетным записям разрешено использовать ее.
Если по какой-то причине это неприемлемое решение и вам необходимо удалить данные из этой таблицы, то это нужно делать один раз в день / час / и т. Д., Я бы попросил создать задание агента SQL для усечения таблицы. в запланированное время каждый день.
Надеюсь это поможет!