TRUNCATE kullanamıyorsanız, silme işlemlerinizi yönetilebilir parçalara ayırma önerileriyle aynı fikirdeyim ve orijinalliği için bırakma / oluşturma önerisini seviyorum, ancak sorunuzdaki şu yorumu merak ediyorum:
Temel olarak bir TRUNCATE TABLE ifadesine eşdeğerdir - TRUNCATE kullanmama izin verilmemesi dışında
Bu kısıtlamanın nedeninin bir masayı doğrudan kesmek için verilmesi gereken güvenlikle ve ilgilendiğinizden başka masaları kesmenize izin vereceği gerçeğiyle ilgili olduğunu tahmin ediyorum.
Durumun böyle olduğunu varsayarak, TRUNCATE TABLE kullanarak ve "EXECUTE AS" kullanan bir saklı yordamın oluşturulup yaratılmadığını merak ediyorum, masayı doğrudan kesmek için gerekli güvenlik haklarını vermenin uygun bir alternatif olarak kabul edilip edilmeyeceğini düşünüyorum.
Umarım, bu size ihtiyacınız olan hızı verirken, şirketinizin db_ddladmin rolüne hesabınızı eklerken sahip olabileceği güvenlik kaygılarını da ele alır.
Saklı yordamın bu şekilde kullanılmasının bir başka avantajı da saklı yordamın kilitlenebilmesi ve böylece yalnızca belirli hesapların kullanmasına izin verilmesidir.
Herhangi bir nedenden ötürü bu kabul edilebilir bir çözüm değilse ve bu tablodaki verilerin kaldırılması gerekliliği günde / saatte bir kez yapılması gereken bir şeyse, tabloyu kesmek için bir SQL Agent işi oluşturulmasını isterim. Her gün planlanan bir zamanda.
Bu yardımcı olur umarım!