Cách buộc thả cơ sở dữ liệu trong SQL Server 2008


68

Tôi đang cố gắng hủy bỏ cơ sở dữ liệu, nhưng sau khi bỏ cơ sở dữ liệu, khi tôi cố gắng tạo lại cơ sở dữ liệu, tôi đã gặp lỗi

không thể tạo tệp C: \ Tệp chương trình ..... [tên tệp dữ liệu] .mdf vì nó đã tồn tại

Đây là truy vấn của tôi để buộc thả cơ sở dữ liệu

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

Tôi hiểu rằng, truy vấn trên đang bỏ cơ sở dữ liệu, nhưng nó không xóa các tệp .ldf.mdf. Làm thế nào để loại bỏ cơ sở dữ liệu kỹ lưỡng?

Một truy vấn bình thường

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

Làm thế nào để buộc thả một cơ sở dữ liệu, cũng xóa các tập tin .mdf.ldf?

Câu trả lời:


116

Đó là hành vi dự kiến ​​và tài liệu :

Bỏ cơ sở dữ liệu sẽ xóa cơ sở dữ liệu khỏi phiên bản SQL Server và xóa các tệp đĩa vật lý được sử dụng bởi cơ sở dữ liệu. Nếu cơ sở dữ liệu hoặc bất kỳ một trong các tệp của nó ngoại tuyến khi bị hủy, các tệp đĩa sẽ không bị xóa. Các tệp này có thể được xóa thủ công bằng cách sử dụng Windows Explorer. Để xóa cơ sở dữ liệu khỏi máy chủ hiện tại mà không xóa các tệp khỏi hệ thống tệp, hãy sử dụng sp_detach_db.

Vậy tại sao bạn lấy cơ sở dữ liệu của mình ngoại tuyến trước? Chỉ cần đặt nó vào SINGLE_USERchế độ và sau đó thả nó xuống như tài liệu trên SQL Server Books Online.-

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

Lưu ý, sao lưu cơ sở dữ liệu sẽ không bị xóa như là một phần của quy trình được ghi lại ở trên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.