參考SQL Server聯機叢書的 sp_renamedb與sp_rename
一、更改資料庫名
sp_renamedb
更改資料庫的名稱。
文法
sp_renamedb [ @dbname = ] ' old_name ' ,
[ @newname = ] ' new_name '
參數
[ @dbname = ] ' old_name '
是資料庫的當前名稱。old_name 為 sysname 類型,無預設值。
[ @newname = ] ' new_name '
是資料庫的新名稱。new_name 必須遵循標識符規則。new_name 為 sysname 類型,無預設值。
傳回碼值
0 (成功)或非零數字(失敗)
許可權
只有 sysadmin 和 dbcreator 固定伺服器角色的成員才能執行 sp_renamedb。
樣本
下例將資料庫 accounting 改名為 financial。
EXEC sp_renamedb ' accounting ' , ' financial '
或是
原資料庫的邏輯檔案名稱和物理檔案名稱不一致
在 SQL Server 的企業管理器中,似乎不能直接更改資料庫名稱,如果要更改,最方便的是在查詢分析器中運行:
alter database 原資料庫名稱
modify name=新資料庫名稱
SQL Server 中,資料庫還原時可以更改物理檔案名稱,也可以分離資料庫,直接更改 mdf 的檔案名稱再附加,但更改邏輯檔案名稱似乎不那麼直觀。
在查詢分析器裡運行:
alter database 資料庫名稱
modify file(name=原邏輯檔案名稱, newname=新邏輯檔案名稱)
這樣就可以更改邏輯檔案名稱了,由於 SQL Server 有資料檔案和記錄檔,所以資料檔案和記錄檔的邏輯檔案名稱都要更改的話,就得寫兩個類似於上述的語句。
二、更改表名或列名
sp_rename [ @objname = ] ' object_name ' ,
[ @newname = ] ' new_name '
[ , [ @objtype = ] ' object_type ' ]
/////////////////////////////////////////////
A. 重新命名表
下例將表 customers 重新命名為 custs。
EXEC sp_rename ' customers ' , ' custs '
B. 重新命名列
下例將表 customers 中的列 contact title 重新命名為 title。
EXEC sp_rename ' customers.[contact title] ' , ' title ' , ' COLUMN '