利用存儲過程來重命名SQL Server數據庫

最近遇到一個須要在多用戶模式下從新命名數據庫的Case, 由於數據庫可能被其餘用戶使用,因此直接修改可能會失敗。對於此種狀況,咱們能夠等全部用戶結束使用數據庫時修改,或者是將數據庫切換到單用戶模式下進行操做。sql

有時候,咱們在開發過程當中須要直接把生產環境的數據庫拿到開發環境來測試開發。咱們能夠直接重命名生產環境上的數據庫。這樣以來,即便你有些SQL沒有保存,也能夠直接從原來的數據庫中抓取。數據庫

有兩個重要的細節咱們必須注意測試

  • 當重名名數據庫時, filegroup的名字和數據文件名(.mdf,.ldf)並不會發生變化。
  • 用戶必須切換到Master數據庫上下文環境中,並具備SA的權限才能夠重名名數據庫。
USE master;
GO
-- 將數據庫設置爲單用戶模式
EXEC sp_dboption AdventureWorks, 'Single User', True
GO
-- 重命名數據庫
EXEC sp_renamedb 'AdventureWorks', 'AdventureWorks_New'
GO
-- 在將數據庫設置回多用戶模式
EXEC sp_dboption AdventureWorks_New, 'Single User', False
GO

參考文獻

相關文章
相關標籤/搜索