SP_RENAME 用於變更目前資料庫中使用者建立的物件名稱。 這個物件可以是資料表、索引、資料行(欄位)、預存程序。
變更物件名稱的任何部分,可能破壞指令碼和預存程序。 我們建議您不要使用此語句來重新命名預存程式、觸發程式、使用者定義函式或檢視;請改為卸載 物件,然後以新的名稱重新建立它。
語法
1
2
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
object_type的值可以是column、database、index、object
COLUMN要重新命名的資料行。DATABASE使用者定義的資料庫。 重新命名資料庫時,需要此物件類型。INDEX使用者定義的索引。 使用統計資料重新命名索引,也會自動重新命名統計資料。OBJECT在 sys.objects 中 追蹤之類型的專案。 例如,OBJECT 可用來重新命名物件,包括條件約束(CHECK、FOREIGN KEY、PRIMARY/UNIQUE KEY)、使用者資料表和規則。
1
2
3
sp_rename 'old_table','new_table' --變更資料表名稱
sp_rename 'table.old_column', 'new_column', 'column' --變更欄位名稱
sp_rename 'old_procedure', 'new_procedure', 'object' --變更預存程序名稱
變更資料表名稱
將名為old_table資料表,重新命名為new table。
1
sp_rename 'old_table','new_table'
變更欄位名稱
假如你有一個名為customer資料表,其中有一個名為old_column的欄位,你想要將該欄位重新命名為new table,就可以使用下面語法:
1
sp_rename 'customer.old_column', 'new_column', 'column'
變更預存程序名稱
假如你有一個名為old_procedure預存程序,你想要將該預存程序重新命名為new_procedure,可以使用下面語法:
1
sp_rename 'old_procedure', 'new_procedure', 'object'
範例
重命名資料表
將「顧客清單」的資料表名稱變更為「客戶清單」
1
2
--將「顧客清單」的資料表名稱變更為「客戶清單」
sp_rename '顧客清單', '客戶清單'
重命名欄位
再將「顧客ID」、「顧客名稱」欄位,重新命名為「客戶ID」、「客戶名稱」
1
2
3
--將「顧客ID」、「顧客名稱」欄位重新命名為「客戶ID」、「客戶名稱」
sp_rename '客戶清單.顧客ID', '客戶ID', 'column'
sp_rename '客戶清單.顧客名稱', '客戶名稱', 'column'
重命名預存程序
將名為GetCount的預存程序,重新命名為GetSum
1
sp_rename 'GetCount', 'GetSum','object'