นอกจากการ ลบตารางทั้งฐานข้อมูล SQL Server แล้วในช่วงการพัฒนา อาจจะต้องลบข้อมูลทิ้งทั้งหมด เพื่อทดสอบและแก้ bug

โดยปกติการล้างข้อมูลในเอสคิวแอล เซิร์ฟเวอร์จะใช้คำสั่ง[code lang=”sql”]
TRUNCATE TABLE table_name
[/code]แต่เป็นการทำครั้งละ 1 ตาราง ถ้ามี 20 table ก็จะเสียเวลา แถมต้องลบบางตารางตามลำดับ ถ้าผูกความสัมพันธ์กับตารางอื่นๆไว้ query ชุดนี้จะช่วยลบข้อมูลได้ทั้ง database ไม่ว่าทั้งฐานข้อมูลจะมีกี่ตาราง กี่แรคคอร์ด และตั้ง identity (คล้ายๆ auto increment ใน MySQL) ให้กลับไปที่จุดเริ่มต้น ตั้งแต่ 1 เหมือนตารางใหม่เลย

โปรดตั้งสติก่อนการปฏิบัติการ T-T

[code lang=”sql”]
EXEC sp_MSForEachTable ‘ALTER TABLE ? NOCHECK CONSTRAINT ALL’
EXEC sp_MSForEachTable ‘ALTER TABLE ? DISABLE TRIGGER ALL’

EXEC sp_MSForEachTable ‘DELETE FROM ?’

EXEC sp_MSForEachTable ‘ALTER TABLE ? CHECK CONSTRAINT ALL’
EXEC sp_MSForEachTable ‘ALTER TABLE ? ENABLE TRIGGER ALL’
[/code]
และถ้าเปลี่ยน ‘DELETE FROM ?’ เป็น ‘DROP TABLE ?’ ก็จะเป็นการลบตารางออกไป คำสังแบบนี้ใช้กับ view ก็ได้เหมือนกัน ถ้าลบไม่ได้ลองลบข้อมูลออกไปก่อนตามวิธี ลบตารางทั้งฐานข้อมูล SQL Server