Tôi đang thử nghiệm và học tập với Microsoft SQL Server 2008 R2 SP1. Tôi có một cơ sở dữ liệu nơi tôi đã thực hiện nhiều thử nghiệm. Bây giờ tôi muốn thả và tạo lại nó. Vì vậy, tôi trích xuất các kịch bản tạo ra từ cơ sở dữ liệu, tôi xóa nó và tôi sử dụng kịch bản để tạo lại nó. Tôi ngạc nhiên, tất cả các bảng, khóa, v.v ... vẫn còn ở đó. Làm cách nào để thả cơ sở dữ liệu, để tôi có thể xây dựng lại cơ sở dữ liệu từ đầu?Rớt và tái tạo cơ sở dữ liệu trong Microsoft SQL Server
Trả lời
USE master
IF EXISTS(select * from sys.databases where name='yourDBname')
DROP DATABASE yourDBname
CREATE DATABASE yourDBname
tôi trích xuất các kịch bản tạo ra từ cơ sở dữ liệu
này trích xuất các kịch bản sáng tạo cho tất cả mọi thứ trong cơ sở dữ liệu (bảng biểu, phím vv). Nếu bạn chỉ muốn tạo một cơ sở dữ liệu rỗng, chỉ cần chạy CREATE DATABASE <dbname>
+1 để AnandPhadke Về phần mình của mã
Mã này sẽ đóng tất cả các hoạt động kết nối đến cơ sở dữ liệu và sau đó thả nó
WHILE EXISTS(select NULL from sys.databases where name='YourDBName')
BEGIN
DECLARE @SQL varchar(max)
SELECT @SQL = COALESCE(@SQL,'') + 'Kill ' + Convert(varchar, SPId) + ';'
FROM MASTER..SysProcesses
WHERE DBId = DB_ID(N'YourDBName') AND SPId <> @@SPId
EXEC(@SQL)
DROP DATABASE [YourDBName]
END
GO
CREATE DATABASE YourDBName
GO
Yêu cầu DBName được nhập nhiều lần là dễ xảy ra lỗi, tại một số thời điểm nó sẽ được thực thi với các mục nhập không phù hợp và hậu quả không mong muốn.
Câu trả lời từ AnandPhadke hoặc Pierre với hỗ trợ biến sẽ được ưu tiên cho tôi.
DECLARE @DBName varchar(50) = 'YourDatabaseName'
USE master
IF EXISTS(select * from sys.databases where name= @DBName)
EXEC('DROP DATABASE ' + @DBName)
EXEC('CREATE DATABASE ' + @DBName)
hoặc
DECLARE @DBName varchar(50) = 'YourDatabaseName'
WHILE EXISTS(select NULL from sys.databases where name = @DBName)
BEGIN
DECLARE @SQL varchar(max)
SELECT @SQL = COALESCE(@SQL,'') + 'Kill ' + Convert(varchar, SPId) + ';' FROM MASTER..SysProcesses WHERE DBId = DB_ID(@DBName) AND SPId <> @@SPId
EXEC(@SQL)
EXEC('DROP DATABASE ' + @DBName)
END
GO
này hoạt động tốt nhất cho tôi: (?)
if exists (select name from sys.databases where name='YourDBName')
alter database YourDBName set single_user with rollback immediate
go
if exists (select name from sys.databases where name='YourDBName')
drop database YourDBName
Điều này không thực sự trả lời câu hỏi. Nếu bạn có một câu hỏi khác, bạn có thể hỏi nó bằng cách nhấp vào [Hỏi câu hỏi] (http://stackoverflow.com/questions/ask). Bạn cũng có thể [thêm tiền thưởng] (http://stackoverflow.com/help/privileges/set-bounties) để thu hút thêm sự chú ý đến câu hỏi này khi bạn có đủ [danh tiếng] (http://stackoverflow.com/help/ whats-danh tiếng). - [Từ đánh giá] (/ review/low-quality-posts/12598382) –
Tôi tin rằng bạn đã đánh giá sai câu trả lời này, @KhanImranAli. Điều này cố gắng trả lời, mặc dù kém. Điều này nên được kiểm duyệt bằng cách bỏ phiếu, không phải bằng cách gắn cờ và đánh giá tiêu cực. – Palec
Vui lòng bao gồm giải thích về mã của bạn và cách nó trả lời câu hỏi. Nếu bạn nhận được một đoạn mã như một câu trả lời, bạn có thể không biết phải làm gì với nó. Câu trả lời nên cung cấp cho OP và hướng dẫn khách truy cập trong tương lai. Chỉ ra, ý tưởng đằng sau mã của bạn là gì, giúp hiểu rõ vấn đề và áp dụng hoặc sửa đổi giải pháp của bạn. – Palec
SQL Server 2016 (trở lên) hỗ trợ một dòng và nguyên tử cú pháp DROP DATABASE IF EXISTS database_name
REF : https://msdn.microsoft.com/en-us/library/ms178613.aspx
- 1. Thả cơ sở dữ liệu SQL Server
- 2. Trình nghe WebSocket cho Cơ sở dữ liệu Microsoft SQL
- 3. Lưu trữ email Outlook trong cơ sở dữ liệu Microsoft SQL Server
- 4. Tạo tập lệnh SQL cho dữ liệu của cơ sở dữ liệu của tôi (SQL SERVER)
- 5. enums trong cơ sở dữ liệu SQL Server
- 6. Sử dụng Node.js để kết nối với Microsoft SQL Server 2008 (MSSQL) cơ sở dữ liệu
- 7. Tránh con trỏ cơ sở dữ liệu trong SQL Server
- 8. Cập nhật bảng cơ sở dữ liệu từ một bảng cơ sở dữ liệu SQL Server sang bảng cơ sở dữ liệu SQL Server khác?
- 9. Di chuyển cơ sở dữ liệu SQLite sang Microsoft SQL Server
- 10. Cách chuyển đổi cơ sở dữ liệu Visual Foxpro sang cơ sở dữ liệu SQL Server
- 11. Tuân thủ cơ sở dữ liệu Microsoft Azure HIPAA
- 12. Bảo vệ cơ sở dữ liệu SQL Server 2008R2
- 13. Toàn bộ cơ sở dữ liệu Script SQL-Server
- 14. Làm thế nào để tạo dự án cơ sở dữ liệu từ cơ sở dữ liệu SQL Server hiện tại?
- 15. Nhận cơ sở dữ liệu SQL Server Cross Phụ thuộc
- 16. Bí danh cơ sở dữ liệu chéo của SQL Server
- 17. Làm cách nào để di chuyển Sơ đồ cơ sở dữ liệu SQL Server sang cơ sở dữ liệu khác?
- 18. MIME loại tệp cơ sở dữ liệu SQL Server BACKUP
- 19. Vai trò cơ sở dữ liệu SQL Server
- 20. Mang cơ sở dữ liệu SQL Server trực tuyến
- 21. Chiến lược triển khai cơ sở dữ liệu (SQL Server)
- 22. Thả Người dùng từ Cơ sở dữ liệu SQL Server?
- 23. Cách chọn đối chiếu cơ sở dữ liệu SQL Server
- 24. Chọn kích thước cơ sở dữ liệu SQL Server
- 25. Sao chép các bảng từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong SQL Server
- 26. Khôi phục cơ sở dữ liệu SQL Server 2008 sang SQL Server 2000
- 27. Làm cách nào để tạo một cơ sở dữ liệu theo lập trình trong SQL Server?
- 28. SQL Server - Tạo Trigger đơn chạy cho TẤT CẢ các bảng trong cơ sở dữ liệu
- 29. Tôi không thể tạo sơ đồ cơ sở dữ liệu trong VS2010 cho SQL Server Express
- 30. Đổi tên tệp dữ liệu cơ sở dữ liệu trong SQL Server 2005
Bạn nói đúng, câu hỏi của tôi là ngu ngốc. Trong thực tế, các bảng mà tôi đã tiếp tục thấy được thực sự tạo ra trong cơ sở dữ liệu chủ, thay vì trong cơ sở dữ liệu của tôi. –
Điều này đã giúp tôi rất nhiều! –