ฉันเห็นด้วยกับข้อเสนอแนะในการจัดกลุ่มการลบของคุณเป็นกลุ่มที่จัดการได้หากคุณไม่สามารถใช้ TRUNCATE และฉันชอบคำแนะนำแบบหล่น / สร้างสำหรับความคิดริเริ่ม แต่ฉันอยากรู้เกี่ยวกับความคิดเห็นต่อไปนี้ในคำถามของคุณ:
โดยทั่วไปแล้วเทียบเท่ากับคำสั่ง TRUNCATE TABLE - ยกเว้นฉันไม่ได้รับอนุญาตให้ใช้ TRUNCATE
ฉันเดาว่าเหตุผลสำหรับข้อ จำกัด นี้เกี่ยวข้องกับความปลอดภัยที่ต้องได้รับอนุญาตให้ตัดทอนตารางโดยตรงและความจริงที่ว่ามันจะช่วยให้คุณสามารถตัดทอนตารางอื่นนอกเหนือจากที่คุณเกี่ยวข้อง
สมมติว่าเป็นกรณีนี้ฉันสงสัยว่าถ้ามีขั้นตอนการจัดเก็บที่สร้างขึ้นโดยใช้ TRUNCATE TABLE และใช้ "EXECUTE AS" จะถือว่าเป็นทางเลือกที่มีประโยชน์ในการให้สิทธิ์การรักษาความปลอดภัยที่จำเป็นในการตัดตารางโดยตรง
หวังว่านี่จะให้ความเร็วที่คุณต้องการพร้อมกับจัดการปัญหาด้านความปลอดภัยที่ บริษัท ของคุณอาจมีเมื่อเพิ่มบัญชีของคุณไปยังบทบาท db_ddladmin
ข้อดีอีกประการของการใช้โพรซีเดอร์ที่เก็บด้วยวิธีนี้คือโพรซีเดอร์ที่เก็บนั้นอาจถูกล็อคเพื่อให้อนุญาตเฉพาะแอคเคาท์ที่เจาะจงเท่านั้น
หากด้วยเหตุผลบางอย่างนี่ไม่ใช่วิธีการแก้ปัญหาที่ยอมรับได้และความต้องการของคุณในการลบข้อมูลในตารางนี้เป็นสิ่งที่ต้องทำวันละครั้ง / ชั่วโมง / etc ฉันจะขอให้มีการสร้างงาน SQL Agent เพื่อตัดทอนตาราง ตามเวลาที่กำหนดในแต่ละวัน
หวังว่านี่จะช่วยได้!