MS SQL修改數據庫名稱


在MS SQL中,如果你想修改某一個數據庫的名稱,你可以通過下面幾種方法實現。

 

方法一:使用SP_RENAMEDB系統存儲過程實現。

語法: sp_renamedb [ @dbname = ] 'old_name' , [ @newname = ] 'new_name'

例子: 我需要將數據庫Test_1的名稱修改為Test

use master
go
exec sp_renamedb @dbname='Test_1', @newname='Test';
go

 

有時候執行該腳本,會報如下錯誤:

消息 5030,級別 16,狀態 2,第 1 行

無法用排他鎖鎖定該數據庫,以執行該操作。

出現這種情況,主要是還有其它程序或用戶連接數據庫,你必須確保沒有任何用戶正在使用數據庫. 可以通過將數據庫設置為單用戶模式。在數據庫屬性——》“連接”選擇里面找到限制訪問“選項,選擇SIGLE_USER選項。然后執行上面語句,即可修改數據庫名稱。

clip_image002[4]

當然也可以用腳本解決這個問題,查詢看看當前有哪些會話連接到這個數據庫,如果沒有記錄,則可直接執行上面腳本。

SELECT SPID FROM master.dbo.sysprocesses W
    WHERE dbid=DB_ID('Test1');

 否則執行KILL命令殺掉這些會話進程。

KILL SPID

下面這個腳本可以比較好的處理上面問題,不需要你做過多額外操作,直接用腳本完成任務。

 

use master    
exec sp_dboption  @dbname='OldDbName', @optname= 'Single User',@optvalue= 'TRUE' 
exec sp_renamedb  @dbname='OldDbName', @newname= 'NewDbName' 
exec sp_dboption  @dbname='NewDbName', @optname= 'Single User', @optvalue='FALSE' 
GO

 

 

檢查修改成功。

SELECT name, database_id
FROM sys.databases
WHERE name = N'DbName';

 

注意:SQL Server 2008后續版本的 Microsoft SQL Server 將刪除該功能。請避免在新的開發工作中使用該功能,並着手修改當前還在使用該功能的應用程序。

方法二:使用ALTER DATABASE語句修改數據庫名稱。

USE master;

GO

ALTER DATABASE Test1 MODIFY NAME = Test;

GO

 

方法三:使用Microsoft SQL Server Managment Studio管理工具,選中要修改名稱的數據Test1,單擊右鍵,選擇”重命名”;注意如果有其他用戶會話連接該數據庫則會報錯,必須先殺掉那些會話進程或使數據庫處於單用戶模式下,再執行上面操作,否則會報錯。

clip_image002


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM