1. 程式人生 > 其它 >修改sqlserver的資料庫名、物理名稱和邏輯檔名

修改sqlserver的資料庫名、物理名稱和邏輯檔名

 

原文連結:  修改sqlserver的資料庫名、物理名稱和邏輯檔名_簡單最美-CSDN部落格_sqlserver修改資料庫名稱

最近在一個專案上遇到需要修改資料庫名稱、物理檔名和邏輯名稱。如下圖所示,資料庫ty_cms_lz的物理檔名是ty_cms_lz.mdf和ty_cms_lz_0.ldf,邏輯檔名是lhc_cmslhc_cms_log

 

 

 


這樣看上去很彆扭,而且資料庫一多很容易混淆。一般新建一個數據庫的話,邏輯名稱和物理檔名是跟資料庫名稱對應起來的。如下圖新建的ty_test資料庫。

為了讓這些名稱對應起來,接下來我會按以下步驟進行操作:

修改資料庫名稱:
ty_cms_lz => ty_cms_mc


修改邏輯名稱:
lhc_cms=> ty_cms_mc
lhc_cms_log =>ty_cms_mc_log
修改物理檔名:
ty_cms_lz.mdf =>ty_cms_mc.mdf
ty_cms_lz_0.mdf =>ty_cms_mc_log_mdf

修改資料庫時如果。。。。。。。(不能修改),是因為這個資料庫正在使用,就斷開這個資料庫,在來修改
 修改資料庫名

這個最簡單,只需要右擊資料庫ty_cms_lz選擇重新命名即可。修改成ty_cms_mc後,後面的步驟都是要對ty_cms_mc進行操作。

 

 

指令碼語言:

alter database  ty_cms_lz
modify name
=ty_cms_mc; alter database 舊名字 modify name= 新名字;

 

修改邏輯名稱
指令碼語句如下:

use ty_cms_mc
go

-- 檢視當前資料庫邏輯名稱
select name from sys.database_files;

-- 修改資料庫邏輯名稱
-- mdf(舊邏輯名:lhc_cms 新邏輯名:ty_cms_mc)
alter database ty_cms_mc modify file(name=lhc_cms, newname=ty_cms_mc)
-- log(舊邏輯名:lhc_cms_log 新邏輯名:ty_cms_mc_log))
alter database ty_cms_mc modify file(name=lhc_cms_log, newname=ty_cms_mc_log)

 
修改完成後我們再檢視資料庫屬性,就看到邏輯名稱已經修改過來了,如下圖:

 

 


修改物理檔名
物理檔案一般是存在sqlserver預設安裝的路徑,如下圖所示:

 

 


分三個步驟來進行操作:

分離資料庫
因為資料庫在佔用狀態是不可以修改物理檔名稱的,所以先必須分離資料庫。也可以手動分離
 指令碼語言:

use master
go
-- 分離資料庫
exec sp_detach_db ty_cms_mc

 
手動修改物理檔名
找到物理檔名的路徑,右擊重新命名進行修改。

 

 

如果沒有分離資料庫,則直接重新命名會報以下錯誤:

 

 


附加資料庫
 

exec sp_attach_db ty_cms_mc,
N'D:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\ty_cms_mc.mdf',
N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\ty_cms_mc_log.ldf'1

最後我們再檢視資料庫ty_cms_mc的屬性,可以看到已經全部修改過來了。

 

 

————————————————
版權宣告:本文為CSDN博主「dym0080」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/dym0080/article/details/81017777