วิธีการบังคับให้วางฐานข้อมูลใน SQL Server 2008


68

ฉันพยายามบังคับให้วางฐานข้อมูล แต่หลังจากวางฐานข้อมูลเมื่อฉันพยายามสร้างฐานข้อมูลขึ้นใหม่ฉันได้รับข้อผิดพลาด

ไม่สามารถสร้างไฟล์ C: \ Program ไฟล์ ..... [databasename] .mdf เนื่องจากมีอยู่แล้ว

นี่คือแบบสอบถามของฉันเพื่อบังคับให้วางฐานข้อมูล

Use master;
ALTER database [databasename] set offline with ROLLBACK IMMEDIATE;
DROP database [databasename];

ฉันเข้าใจว่าข้อความค้นหาด้านบนกำลังวางฐานข้อมูล แต่ไม่ได้ลบ.ldfและ.mdfไฟล์ วิธีการลบฐานข้อมูลอย่างละเอียด?

แบบสอบถามปกติ

Drop database [databasename] ; //deletes the database completely, including the ldf and mdf's.

จะบังคับให้วางฐานข้อมูลซึ่งลบ.mdfและ.ldfไฟล์ได้อย่างไร?

คำตอบ:


116

นั่นเป็นพฤติกรรมที่คาดหวังและบันทึกไว้ :

การดร็อปฐานข้อมูลจะลบฐานข้อมูลออกจากอินสแตนซ์ของ SQL Server และลบไฟล์ฟิสิคัลดิสก์ที่ใช้โดยฐานข้อมูล หากฐานข้อมูลหรือไฟล์ใดไฟล์หนึ่งออฟไลน์เมื่อถูกดร็อปไฟล์ดิสก์จะไม่ถูกลบ ไฟล์เหล่านี้สามารถลบได้ด้วยตนเองโดยใช้ Windows Explorer หากต้องการลบฐานข้อมูลออกจากเซิร์ฟเวอร์ปัจจุบันโดยไม่ลบไฟล์ออกจากระบบไฟล์ให้ใช้ sp_detach_db

เหตุใดคุณจึงทำให้ฐานข้อมูลออฟไลน์เป็นอันดับแรก เพียงแค่ตั้งเป็นSINGLE_USERโหมดแล้วปล่อยตามเอกสารใน SQL Server Books Online-

USE master;
ALTER DATABASE [databasename] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [databasename] ;

หมายเหตุการสำรองฐานข้อมูลจะไม่ถูกลบเนื่องจากเป็นส่วนหนึ่งของกระบวนการด้านบน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.