我正在試驗和學習Microsoft SQL Server 2008 R2 SP1。 我有一個數據庫,我做了很多實驗。現在我想放棄並重新創建它。 因此,我從數據庫中提取創建腳本,將其刪除,然後使用腳本重新創建它。 令我驚訝的是,所有的桌子,鑰匙等都還在那裏。 如何刪除數據庫,以便我可以從頭重建數據庫?在Microsoft SQL Server中刪除和重新創建數據庫
回答
USE master
IF EXISTS(select * from sys.databases where name='yourDBname')
DROP DATABASE yourDBname
CREATE DATABASE yourDBname
我從數據庫
提取創建腳本該提取創建腳本數據庫中的一切(表,鑰匙等)。如果你只是想創建一個空數據庫,只需運行CREATE DATABASE <dbname>
+1到AnandPhadke爲他的部分代碼
該代碼將關閉所有活動連接到數據庫,然後把它
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
要求多次輸入DBName容易出錯,在某些情況下,它將以不一致的條目和意想不到的結果執行。
從AnandPhadke或皮埃爾的可變支持的答案將是我的首選。
DECLARE @DBName varchar(50) = 'YourDatabaseName'
USE master
IF EXISTS(select * from sys.databases where name= @DBName)
EXEC('DROP DATABASE ' + @DBName)
EXEC('CREATE DATABASE ' + @DBName)
或
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
這個最適合我:(?)
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
這並沒有真正回答這個問題。如果您有不同的問題,可以通過單擊[提問](http://stackoverflow.com/questions/ask)來提問。您還可以[添加賞金](http://stackoverflow.com/help/privileges/set-bounties)在您擁有足夠的[聲譽](http://stackoverflow.com/help/)時吸引更多人關注此問題什麼聲譽)。 - [來自評論](/ review/low-quality-posts/12598382) –
我相信你誤解了這個答案,@KhanImranAli。這一個試圖回答,雖然很差。這應該通過投票來緩和,而不是通過舉報和負面評論。 – Palec
請說明您的代碼的作用以及它如何回答問題。如果你得到一個代碼片段作爲答案,你可能不知道如何處理它。回答應該給OP和未來的訪客指導。指出你的代碼背後的想法,對於理解這個問題以及應用或修改你的解決方案有很大的幫助。 – Palec
的SQL Server 2016(及以上)的支持一條線和原子語法DROP DATABASE IF EXISTS database_name
- 1. 無法刪除並在sql server中創建數據庫
- 2. SQL Server 2008自動化數據庫刪除,創建和填充
- 3. 刪除SQL Server數據庫
- 4. 刪除和重新創建過程(SQL Server)
- 5. 在Symfony中重新創建數據庫(錯誤地刪除) - Doctrine?
- 6. 如何在Android中刪除並重新創建數據庫?
- 7. 從刪除/重新創建數據庫在使用建--all
- 8. 刪除和重新創建ArangoDB數據庫保留集合
- 9. 在Spring中刪除和重新創建數據庫模式的新方法?
- 10. 在SQL Server中創建數據庫
- 11. 在SQL Server中創建數據庫
- 12. 在SQL Server 2005中創建數據庫
- 13. 表中的SQL Server數據庫不自動創建在Microsoft SQL Server 2012中我使用JPA數據庫
- 14. SQL Server權限創建/修改/刪除*僅*您的數據庫
- 15. SQL Server中的刪除/重新創建類型
- 16. 如何刪除Sql Server數據庫
- 17. 如何刪除整個數據庫並使用sql和c#重新創建它?
- 18. 可以刪除和重新創建索引加快SQL刪除?
- 19. 重新創建與關係的整個SQL Server數據庫
- 20. SQL刪除表並重新創建並保留數據
- 21. 如何在SQL Server中創建數據庫的數據庫圖
- 22. SQL查詢數據庫的Microsoft SQL Server
- 23. SQL Server 2008 R2無法創建新的數據庫
- 24. 強制SQL Server刪除數據庫
- 25. 如何在Microsoft SQL Server Management Studio中添加新數據庫?
- 26. SQL Server 2008重複數據刪除
- 27. 已刪除Postgresql.app用戶數據庫。如何重新創建?
- 28. 無法重新創建已刪除的SSAS數據庫
- 29. 重命名SQL Server數據庫和MVC5
- 30. 使用EntityFramework刪除並重新創建數據庫
你說得對,我的問題很蠢。 事實上,我繼續看到的表格實際上是在master數據庫中創建的,而不是在我的數據庫中創建的。 –
這幫了我很多! –